[英]NullReferenceException when update database from datagridview
我想在Windows窗體中編輯我的datagridview,然后單擊“保存”按鈕以更新到數據庫。
public void button1_Click(object sender, EventArgs e)
{
string txt = textBox1.Text;
string strOleDbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Project.mdb";
string strSqlStatement = string.Empty;
strSqlStatement = "SELECT * FROM jiahe WHERE [User] = '" + txt + "'";
OleDbConnection objConnection = new OleDbConnection(strOleDbConnectionString);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSqlStatement, objConnection);
DataSet ds = new DataSet();
objAdapter.Fill(ds);
DataTable dt = ds.Tables[0];
dataGridView1.DataSource = dt.DefaultView;
try
{
if (dt.Rows.Count == 1)
{
string strLine = string.Empty;
string strUser = string.Empty;
foreach (DataRow dr in dt.Rows)
{
string strTags = dr["Tag ID"].ToString();
strUser = dr["User"].ToString();
string strAge = dr["Age"].ToString();
string strPhoneNumber = dr["Phone Number"].ToString();
DataTable dataTable = new DataTable();
string updateString = @"update jiahe set Age = ' " + strAge + " ' where [User] = '" + textBox1.Text + "'";
OleDbCommand cmd1 = new OleDbCommand(updateString, objConnection);
cmd1.Connection.Open();
string str = cmd1.ExecuteNonQuery().ToString();
cmd1.Connection.Close();
}
}
else
{
if (dt.Rows.Count == 0)
{
MessageBox.Show("Invalid input!");
}
}
}
catch (Exception)
{
MessageBox.Show("Error!");
}
}
我的“保存”按鈕:
private void button2_Click(object sender, EventArgs e)
{
try
{
objAdapter.Update(dt);
}
catch (Exception exx)
{
MessageBox.Show(exx.ToString());
}
}
單擊“保存”時,在objAdapter.Update(dt)處出現 “未設置對象引用。”錯誤。 。 請告訴我我在這里想念什么。 我正在自學C#,但仍然很新,所以不要對我苛刻。
您已經在第一個按鈕處理程序中本地定義了objAdapter
。 因此,第二個按鈕處理程序甚至都不知道它的存在。 您發布的代碼不應編譯。 這真的是您的代碼還是它的近似值?
您可能需要使objAdapter
成為您的類的成員。 將其聲明從方法中拉出到類中。 那應該使您至少接近一兩個步驟。
也有可能您確實擁有一個類級別的objAdapter
並且意外地在第一個處理程序中創建了第二個(但本地的)第二個。 如果是這種情況,請更改此行
OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSqlStatement, objConnection);
對此:
objAdapter = new OleDbDataAdapter(strSqlStatement, objConnection);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.