ASMX Web服务使用SQL Server存储用户数据SQL错误
本文关键字:SQL 用户 用户数 数据 错误 存储 Server 服务 ASMX Web | 更新日期: 2023-09-27 18:28:07
我试图在Visual Web Developer中创建一个ASMX Web服务。我已经成功地实现了以下
- 创建了一个列为"电子邮件"、"名称"的数据库
- 创建了服务
我还指定了类似的连接字符串web.config
<connectionStrings>
<add name="mydb" connectionString="data source=.'SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
但在服务表单中输入数据后,我得到了一个SQL异常"@Name附近语法不正确"
[WebMethod]
public string insertuser(String UserName,String Email)
{
string connectionString = ConfigurationManager.ConnectionStrings["mydb"].ConnectionString;
SqlConnection sqlCon = new SqlConnection(connectionString);
SqlCommand nonqueryCommand = sqlCon.CreateCommand();
sqlCon.Open();
nonqueryCommand.CommandText = "INSERT INTO UID (Email, Name) VALUES (@Email, @Name";
// Add Parameters to Command Parameters collection
nonqueryCommand.Parameters.Add("@Email", SqlDbType.VarChar, 10);
nonqueryCommand.Parameters.Add("@Name", SqlDbType.VarChar, 20);
nonqueryCommand.Parameters["@Email"].Value = UserName;
nonqueryCommand.Parameters["@Name"].Value = Email;
nonqueryCommand.ExecuteNonQuery();
return "done";
}
正如andomar正确指出的那样,您的sql命令中缺少右括号
您可以在sql中生成insert命令,然后将生成的sql粘贴到代码中。
IE你的代码应该看起来像
nonqueryCommand.CommandText="插入UID(电子邮件,名称)值(@电子邮件,@姓名)";
添加右括号:
VALUES (@Email, @Name";
您缺少右括号:
VALUES (@Email, @Name)";