C# WinForm程序,用Sqldatareader遍历表,然后放到二维数组里,在填到datatable里,datagridview.datasource=datatable,大体就这思路,显示的没问题,就是速度奇慢,得2分多钟...谁知道问题出在哪里啊?用listview显示也是很慢,2分多钟
18行,48列的数据,还不到1000条
代码如下:
conn = new SqlConnection(connstr);
conn.Open(); //打开数据库连接
string sql1 = "select medname,medpos from storetable where medpos like '01%' ";
Command cmd1 = new SqlCommand(sql1, conn);
dr1 = cmd1.ExecuteReader();
string [,] data=new string[50,50]; //二维数组data
if (dr1.HasRows)
{
while (dr1.Read())
{
string name = dr1[0].ToString(); //dr1[0]读取的是汉字
string pos = dr1[1].ToString(); //dr1[1]读取的是数字
int rownum = int.Parse(pos.Substring(2, 2));
int colnum = int.Parse(pos.Substring(4, 2));
data[rownum, colnum] = name; //把数字对应的汉字放入二维数组,最终显示的时候只显示汉字
DataTable dt = new DataTable(); //创建表
//新增列
for (int a = 0; a < 48; a++)
dt.Columns.Add(data[0, a], typeof(string));
for (int b = 0; b < 18; b++)
{
DataRow row = dt.NewRow();
for (int c = 0; c < 48; c++)
{
row[c] = data[b + 1, c + 1];
}
dt.Rows.Add(row);
}
this.dataGridView1.DataSource = dt;
}
}