OleDb 更新 database.mdb
OleDb Update database.mdb
当我使用 CustomButton 将“Full_Name”保存在数据库 [Rooms] => Person 中时,什么也没有发生。另外,如果我使用 try & catch 函数,也不会有异常。
数据库中的字段保持为空。
当我在 MessageBox (idPlus2, Full_Name) 中显示所需的变量时,它会返回正确的信息。
所以我认为问题一定出在 UPDATE Sql 字符串中,但我不知道出了什么问题。
private string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\....mdb";
//Path anonymous
string Full_Name;
[Obsolete]
private void customButton1_Click(object sender, EventArgs e)
{
conn = new OleDbConnection(connstr);
conn.Open();
strSQL = "SELECT * FROM [Guests] WHERE ID = ?";
cmd = new OleDbCommand(strSQL, conn);
da = new OleDbDataAdapter(cmd);
int id = CustomComboBox1.SelectedIndex;
int idPlus = id + 1;
cmd.Parameters.Add("?", idPlus);
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Full_Name = reader["Vorname"].ToString() + ' ' + reader["Nachname"].ToString();
}
reader.Close();
string insertQuery = @"UPDATE [Rooms] SET Person = @Full_Name WHERE ID = ?";
cmd = new OleDbCommand(insertQuery, conn);
int id2 = customComboBox2.SelectedIndex;
int idPlus2 = id2 + 2;
cmd.Parameters.Add("?", idPlus2);
cmd.Parameters.Add(new OleDbParameter("@Full_Name", Full_Name));
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
conn.Close();
LoadTheme();
}
我有答案
cmd.Parameters.Add("?", OleDbType.VarChar, 255).Value = CustomComboBox1.Texts;
cmd.Parameters.Add("?", idPlus2);
对于OleDb
,您必须对每个应添加到数据库的变量或对象使用?
。这意味着您不能在 SQL 字符串中按名称指定变量。您必须使用与 C# 代码中的 SQL 字符串相同的顺序来插入参数。
当我使用 CustomButton 将“Full_Name”保存在数据库 [Rooms] => Person 中时,什么也没有发生。另外,如果我使用 try & catch 函数,也不会有异常。 数据库中的字段保持为空。
当我在 MessageBox (idPlus2, Full_Name) 中显示所需的变量时,它会返回正确的信息。
所以我认为问题一定出在 UPDATE Sql 字符串中,但我不知道出了什么问题。
private string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\....mdb";
//Path anonymous
string Full_Name;
[Obsolete]
private void customButton1_Click(object sender, EventArgs e)
{
conn = new OleDbConnection(connstr);
conn.Open();
strSQL = "SELECT * FROM [Guests] WHERE ID = ?";
cmd = new OleDbCommand(strSQL, conn);
da = new OleDbDataAdapter(cmd);
int id = CustomComboBox1.SelectedIndex;
int idPlus = id + 1;
cmd.Parameters.Add("?", idPlus);
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Full_Name = reader["Vorname"].ToString() + ' ' + reader["Nachname"].ToString();
}
reader.Close();
string insertQuery = @"UPDATE [Rooms] SET Person = @Full_Name WHERE ID = ?";
cmd = new OleDbCommand(insertQuery, conn);
int id2 = customComboBox2.SelectedIndex;
int idPlus2 = id2 + 2;
cmd.Parameters.Add("?", idPlus2);
cmd.Parameters.Add(new OleDbParameter("@Full_Name", Full_Name));
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
conn.Close();
LoadTheme();
}
我有答案
cmd.Parameters.Add("?", OleDbType.VarChar, 255).Value = CustomComboBox1.Texts;
cmd.Parameters.Add("?", idPlus2);
对于OleDb
,您必须对每个应添加到数据库的变量或对象使用?
。这意味着您不能在 SQL 字符串中按名称指定变量。您必须使用与 C# 代码中的 SQL 字符串相同的顺序来插入参数。