我的ASP.NET项目中有以下代码,我仍然无法弄清楚为什么我的SQL Server表保存参数名称而不是值.任何帮助将不胜感激.
[WebMethod] public static void InsertMethod(string firstname, string lastname) { SqlConnection con = new SqlConnection(@"Data Source=KIMBERLY\SQLSERVER02;Initial Catalog=Chalegh;User ID=***;Password=***"); SqlCommand cmd = new SqlCommand("insert into TestTable values('@Firstname','@Lastname')", con); SqlParameter paramFirstName = new SqlParameter(); paramFirstName.ParameterName = "@Firstname"; paramFirstName.Value = firstname; cmd.Parameters.Add(paramFirstName); SqlParameter paramLastName = new SqlParameter(); paramLastName.ParameterName = "@Lastname"; paramLastName.Value = lastname; cmd.Parameters.Add(paramLastName); con.Open(); cmd.ExecuteNonQuery();删除引号并使用 AddWithValue 方法,如下所示:
SqlCommand cmd = new SqlCommand("insert into TestTable values(@Firstname,@Lastname)", con); cmd.Parameters.AddWithValue("@Firstname",firstname); cmd.Parameters.AddWithValue("@Lastname",lastname);
您的实际问题是引号.当您使用引号时,@ Firstname和@Lastname被视为实际值而不是参数.您不必使用AddWithValue方法,但它更短且易于使用.您不需要创建每个参数的SqlParameter并逐个设置每个属性.
查看更多关于c# – 为什么我在SQL表中得到@firstname和@lastname?的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did69335