0

我编写了一个示例代码,使用存储过程和实体框架将数据插入 MySQL 数据库,如下所示:

MySqlParameter userName = new MySqlParameter("_UserName", MySqlDbType.VarChar);
userName.Value = txtUserName.Text;
MySqlParameter password = new MySqlParameter("_Password", MySqlDbType.VarChar);
password.Value = txtPassword.Text;
MySqlParameter FirstName = new MySqlParameter("_FirstName", MySqlDbType.VarChar);
FirstName.Value = txtFirstName.Text;
MySqlParameter LastName = new MySqlParameter("_LastName", MySqlDbType.VarChar);
LastName.Value = txtLastName.Text;

entities.ExecuteStoreCommand(
    "uspInsertUsers _UserName,_Password,_FirstName,_LastName",
    userName, password, FirstName, LastName);

我得到一个例外:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'uspInsertUsers 'Dorababu','sae','Dorababu','M'' 附近使用正确的语法

有人能帮我吗?

4

2 回答 2

0

你有没有尝试过:

entities.ExecuteStoreCommand("CALL uspInsertUsers _UserName,_Password,_FirstName,_LastName", userName,password,FirstName,LastName);
于 2012-12-10T17:24:12.317 回答
0

最后这对我有用

MySqlParameter userName = new MySqlParameter("?UserName", MySqlDbType.VarChar);
userName.Value = txtUserName.Text;
MySqlParameter password = new MySqlParameter("?Password", MySqlDbType.VarChar);
password.Value = txtPassword.Text;
MySqlParameter FirstName = new MySqlParameter("?FirstName", MySqlDbType.VarChar);
FirstName.Value = txtFirstName.Text;
MySqlParameter LastName = new MySqlParameter("?LastName", MySqlDbType.VarChar);
LastName.Value = txtLastName.Text;

entities.ExecuteStoreCommand("CALL uspInsertUsers(?UserName,?Password,?FirstName,?LastName)", userName,password,FirstName,LastName);
于 2012-12-24T07:31:17.960 回答