C# 使用c访问时未提交数据#
插入数据库的数据显示在数据库中,但经过一段时间后,它将自动删除。显然,您的代码中有一个输入错误,如果表的Id不是自动递增的,请更正参数名称:C# 使用c访问时未提交数据#,c#,C#,插入数据库的数据显示在数据库中,但经过一段时间后,它将自动删除。显然,您的代码中有一个输入错误,如果表的Id不是自动递增的,请更正参数名称: try { if (connection.con.State == ConnectionState.Closed) connection.con.Open(); com = new OleDbCommand("insert into dealer values(@id,@a1,@a2,@a3,@a4,@a5,@a6)", connectio
try {
if (connection.con.State == ConnectionState.Closed) connection.con.Open();
com = new OleDbCommand("insert into dealer values(@id,@a1,@a2,@a3,@a4,@a5,@a6)", connection.con);
com.Parameters.AddWithValue("@a1", int.Parse(t1.Text));
com.Parameters.AddWithValue("@a2", t2.Text);
com.Parameters.AddWithValue("@a3", t3.Text);
com.Parameters.AddWithValue("@a4", t4.Text);
com.Parameters.AddWithValue("@a5", t5.Text);
com.Parameters.AddWithValue("@a6", t6.Text);
com.Parameters.AddWithValue("@a7", c1.Text);
int i = com.ExecuteNonQuery();
if (i > 0) {
MessageBox.Show("dealer Registration Seccessfully !!");
}
} catch (Exception ex) {
MessageBox.Show(ex.ToString());
} finally {
connection.con.Close();
}
如果表的Id是自动递增的,不要在INSERT命令中设置它的值。com.Parameters.AddWithValue(“@a7”,c1.Text);“@a7”的定义在哪里?你也没有在AddWithValue中使用“@id”是否需要解析?@AnikIslamAbhi:我不确定,但我不这么认为。他没有指定参数类型。从逻辑上说,无论我发送什么,它都会作为字符串传递,然后根据列数据类型经过转换阶段。@AnikIslamAbhi:是的,为了防止运行时错误,他应该这样做(我不知道类型),但这段代码没有编译器错误。
try {
if (connection.con.State == ConnectionState.Closed) connection.con.Open();
com = new OleDbCommand("insert into dealer values(@id,@a1,@a2,@a3,@a4,@a5,@a6)", connection.con);
com.Parameters.AddWithValue("@id", int.Parse(t1.Text)); // Change argument name to @id
com.Parameters.AddWithValue("@a1", t2.Text);
com.Parameters.AddWithValue("@a2", t3.Text);
com.Parameters.AddWithValue("@a3", t4.Text);
com.Parameters.AddWithValue("@a4", t5.Text);
com.Parameters.AddWithValue("@a5", t6.Text);
com.Parameters.AddWithValue("@a6", c1.Text);
...