【发布时间】:2012-11-18 17:20:01
【问题描述】:
我正在尝试使用 C# 和 Visual Studio 2012 在我的 MS Access 数据库中实现 SQL INSERT 命令。
但是在那之后,当我打开我的Access数据库时,即使insert命令也没有更新,通过在executeNonQuery()之后显示成功弹出窗口可以成功创建@
您能告诉我如何使这个插入 SQL 命令起作用吗?
这是我的代码
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = @"INSERT INTO STUDENT(CHI_NAME, ENG_NAME, NICK_NAME,
BD_YYYY, BD_MM, BD_DD,
HOME_TEL, NO_OF_CHILD, PARENT_EMAIL,
SEC_EMAIL, STUDENT_ADDR, DISTRICT,
MOTHER_NAME, MOTHER_TEL, MOTHER_OCCU,
FATHER_NAME, FATHER_TEL, FATHER_OCCU,
E_NAME, E_TEL, E_RELATIONSHIP, REMARKS)
VALUES(@NEW_CHI_NAME, @NEW_EN G_NAME, @NEW_NICK_NAME,
@NEW_BD_YYYY, @NEW_BD_MM .....);"
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@NEW_CHI_NAME", chi_name);
cmd.Parameters.AddWithValue("@NEW_ENG_NAME", eng_name);
cmd.Parameters.AddWithValue("@NEW_NICK_NAME", nick_name);
cmd.Parameters.AddWithValue("@NEW_BD_YYYY", bd_year);
cmd.Parameters.AddWithValue("@NEW_BD_MM", bd_month);
....
cmd.Connection = connection;
connection.Open();
cmd.Transaction = connection.BeginTransaction();
int rows= cmd.ExecuteNonQuery();
if(rows > 0)
{
MessageBox.Show("Insert New Client Success!");
}
else
{
MessageBox.Show("Insert New Client Failed!");
}
cmd.Transaction.Commit();
connection.Dispose();
connection.Close();
【问题讨论】:
-
显示您的连接字符串也无妨。
-
另外:我会先提交交易,在显示消息框之前!
-
您是否拥有多个 Access DB 副本?根据您的解释,您很可能正在更新与您正在验证的数据库不同的数据库。正如 ethron10 建议的那样,检查您的连接字符串
-
你应该在 .Dispose() 连接之前 .Close() 连接。
-
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\KidSquare_1.0.4.accdb;Persist Security Info=True" 将数据库放入项目文件中