2014-03-01 59 views
1

獲得以下異常在使用C#更新SQL表(Ado.net)找不到表0在C#

型 'System.IndexOutOfRangeException' 未處理的異常出現在system.data.dll 其他信息:無法找到表0

這裏是我的代碼:

int x; 
da.UpdateCommand = new SqlCommand("UPDATE ITEM_DETAILS SET [email protected]_NAME,[email protected]_DESCRIPTION,[email protected]_NAME,[email protected],[email protected],[email protected],[email protected]_NUM,[email protected] WHERE [email protected]_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]; 
+1

。在你的數據集'ds'沒有表。如果你想了解更多這方面的知識,那麼就分享'ds'如何填補。 – Sachin

+0

正如@Sachin所說,我們需要看到更多關於數據集的代碼 - 你如何初始化它? – X3074861X

+0

Dataset ds = new Dataset(); – user3262450

回答

1

da是什麼意思?這是你的sqlcommand嗎?如果是,那麼嘗試用這種希望它使用MS SQL Server的IM時幫助

SqlDataAdapter sda = new SqlDataAdapter(sqlcommand); 
Dataset ds = new DataSet(); 
sda.Fill(ds); 
dg.DataSource = ds.Tables[0]; 
bs.DataSource = ds.Tables[0]; 

我做這樣的事情

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] 
+0

da是SqlDataAdapter – user3262450

+0

你正在使用什麼dbms? – Angelo