这个错误怎么解决??

duxingxue 2005-03-24 09:05:24
private void FormOrders_Load(object sender, System.EventArgs e)
{
//创建连接对象
SqlConnection conn = new SqlConnection("user id=sa;data source=\"sun\";initial catalog=Northwind;password=123");
string sqlStatement = "select * from orders where CustomerID = @ID ORDER BY OrderID";
SqlCommand sqlcmd = new SqlCommand(sqlStatement,conn);

//设置参数
sqlcmd.Parameters.Add("@ID",CustomerID);
conn.Open();
SqlDataReader sdr = sqlcmd.ExecuteReader(); //执行SQL语句
int cols = sdr.FieldCount;//获取结果行中的列数

lvOrders.BeginUpdate();//向列表视图添加列表头
for ( int i = 0; i<cols; i++)
{
lvOrders.Columns.Add(sdr.GetName(i),100,HorizontalAlignment.Left);
}
string[] lvitem = new string[ cols ];
object[] values = new object[ cols ];

//向列表视图中添加列表项
while(sdr.Read())
{
sdr.GetValue(values); //读取一行
for(int i = 0;i<values.Length; i++)
lvitem[i] = values[i].ToString();
ListViewItem lvi = new ListViewItem(lvitem);
lvOrders.Items.Add(lvi);
}
lvOrders.EndUpdate();
sdr.Close();
conn.Close();

}

—————————————————————————————————————————
调试时出错如下:
1、C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\MyTest\FormOrders.cs(120): 与“System.Data.SqlClient.SqlDataReader.GetValue(int)”最匹配的重载方法具有一些无效参数

2、C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\MyTest\FormOrders.cs(120): 参数“1” : 无法从“object[]”转换为“int”

...全文
67 点赞 收藏 4
写回复
4 条回复
kingboy001 2005年03月25日
up
回复 点赞
qpl007 2005年03月24日
while(sdr.Read())
{
for(int i = 0;i<values.Length; i++)
lvitem[i] = sdr.GetValue(i).ToString();
ListViewItem lvi = new ListViewItem(lvitem);
lvOrders.Items.Add(lvi);
}
回复 点赞
qpl007 2005年03月24日
//改成这样
while(sdr.Read())
{
for(int i = 0;i<values.Length; i++)
lvitem[i] = sdr.GetValue(i).ToString();
ListViewItem lvi = new ListViewItem(lvitem);
lvOrders.Items.Add(lvi);
}
回复 点赞
qpl007 2005年03月24日
sdr.GetValue(values); //读取一行

这行有问题!
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告