我需要使用SqlDataAdapter
在本地PC上更新我的数据库。该项目是Windows Forms。此方法从数据库中选择信息并返回DataTable
作为DataGridView
的数据源:
static string querySelect = "select * from [customers_Sizes] where ID_customers = @ID_customers";
private DataSet recivedData;
static public SqlDataAdapter adapterSize = new SqlDataAdapter(querySelect, connectionString);
SqlCommandBuilder cmdBuilder;
public DataTable clientSizes(int ID)
{
DataTable table = new DataTable();
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand commSelect = new SqlCommand(querySelect, conn);
commSelect.Parameters.AddWithValue("@ID_customers", ID);
adapterSize = new SqlDataAdapter(commSelect);
cmdBuilder = new SqlCommandBuilder(adapterSize);
recivedData = new DataSet();
conn.Open();
adapterSize.Fill(recivedData);
table = recivedData.Tables[0];
}
return table;
}
此代码用于更新:
public void setNewSizes()
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
adapterSize.UpdateCommand = cmdBuilder.GetUpdateCommand();
conn.Open();
adapterSize.Update(receivedData.Tables[0]);
}
}
在receivedData
中,我确实需要更新表格。我收到一个错误:
连接字符串属性尚未初始化
那么,我该如何解决呢?感谢。
答案 0 :(得分:2)
您正在重新定义 clientSizes 方法中的变量 adapterSize ,有效地隐藏了在类范围内定义的全局变量。
这样,在类范围定义的全局变量没有关于添加到内部变量的参数ID的信息,当您尝试使用它时,会引发异常。
只需删除adapterSize的声明并使用全局变量
// SqlDataAdapter adapterSize = new SqlDataAdapter(commSelect);
adapterSize = new SqlDataAdapter(commSelect);
旁注。