[英]Cannot find table 0 in C#
使用C#更新Sql表时出现以下异常(Ado.net)
System.Data.dll中发生了类型为'System.IndexOutOfRangeException'的未处理异常。其他信息:找不到表0。
这是我的代码:
int x;
da.UpdateCommand = new SqlCommand("UPDATE ITEM_DETAILS SET ITEM_NAME=@ITEM_NAME,ITEM_DESCRIPTION=@ITEM_DESCRIPTION,VENDOR_NAME=@VENDOR_NAME,QUANTITY=@QUANTITY,RATE=@RATE,AMOUNT=@AMOUNT,INVOICE_NUM=@INVOICE_NUM,DATE=@DATE WHERE ITEM_MODEL=@ITEM_MODEL", con);
da.UpdateCommand.Parameters.Add("@ITEM_NAME", SqlDbType.VarChar).Value = txtItemName.Text;
da.UpdateCommand.Parameters.Add("@ITEM_DESCRIPTION", SqlDbType.VarChar).Value = txtItemDescription.Text;
da.UpdateCommand.Parameters.Add("@VENDOR_NAME", SqlDbType.VarChar).Value = txtVendor.Text;
da.UpdateCommand.Parameters.Add("@QUANTITY", SqlDbType.Int).Value = txtQuantity.Text;
da.UpdateCommand.Parameters.Add("@RATE", SqlDbType.Money).Value = txtRate.Text;
da.UpdateCommand.Parameters.Add("@AMOUNT", SqlDbType.Money).Value = txtAmount.Text;
da.UpdateCommand.Parameters.Add("@INVOICE_NUM", SqlDbType.Int).Value = txtInvoice.Text;
da.UpdateCommand.Parameters.Add("@DATE", SqlDbType.VarChar).Value = dateTimePicker1.Value;
da.UpdateCommand.Parameters.Add("@ITEM_MODEL", SqlDbType.VarChar).Value = ds.Tables[0].Rows[bs.Position][0];
con.Open();
x = da.UpdateCommand.ExecuteNonQuery();
con.Close();
if (x >= 1)
{
MessageBox.Show("Record(s) has been updated");
}
谁能解释这个问题的解决方案? 任何帮助都将是可观的
da.Fill(ds);
dg.DataSource = ds.Tables[0];
bs.DataSource = ds.Tables[0];
da是什么意思? 这是您的sqlcommand吗? 如果是的话,那么尝试使用这种希望,它会有所帮助
SqlDataAdapter sda = new SqlDataAdapter(sqlcommand);
Dataset ds = new DataSet();
sda.Fill(ds);
dg.DataSource = ds.Tables[0];
bs.DataSource = ds.Tables[0];
当我使用MS SQL Server我做这样的事情
sqlConnection.Open();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = CommandType.Text;
sqlCommand.CommandText = "your SQL Statement";
sqlCommand.Parameters.Add("@param1", SqlDbType.VarChar).Value = adparam[0];
sqlCommand.Parameters.Add("@param2", SqlDbType.VarChar).Value = adparam[1];
sqlCommand.Parameters.Add("@Param3", SqlDbType.VarChar).Value = adparam[2];
sqlCommand.ExecuteNonQuery();
SqlDataAdapter sda = new SqlDataAdapter(sqlcommand);
Dataset ds = new DataSet();
sda.Fill(ds);
dg.DataSource = ds.Tables[0];
bs.DataSource = ds.Tables[0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.