private void insert(string UerName, string contents, string subject)
{ using (SqlConnection conn = new SqlConnection())
{ conn.ConnectionString = "Data Source=LIUHAIFENG-PC;Initial Catalog=db_Liu;Persist Security Info=True;User ID=sa;Password=sa;";
conn.Open(); using (SqlCommand comm = new SqlCommand())
{ comm.Connection = conn;
comm.CommandText = " insert into LiuYan (UerName,contents,subject)valuse(@UerName,@contents,@subject)"; comm.Parameters.Add("@UerName", Convert.ToString(UerName)); comm.Parameters.Add("@contents", Convert.ToString(contents)); comm.Parameters.Add("@subject", Convert.ToString(subject)); comm.ExecuteNonQuery(); //conn.Close(); //Response.Redirect("LiuYan.aspx");
} } }
comm.ExecuteNonQuery(); 附近有错误。。。怎么改呢???
是values 不是 valuse。
谢谢你的回复,又出
新问题了。
“/Login”应用程序中的服务器错误。
不允许从数据类型 nvarchar 到 varbinary 的隐式转换。请使用 CONVERT 函数来运行此查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 不允许从数据类型 nvarchar 到 varbinary 的隐式转换。请使用 CONVERT 函数来运行此查询。
源错误:
行 64: comm.Parameters.Add("@contents", Convert.ToString(contents));
行 65: comm.Parameters.Add("@subject", Convert.ToString(subject));
行 66: comm.ExecuteNonQuery();
行 67:
行 68: }
|
我的数据类型除了 id 其他全部是varbinary类型的啊
@冷漠忆夏: SqlDbType.VarBinary
1 using (SqlCommand comm = new SqlCommand()) 2 { 3 comm.Connection = conn; 4 comm.CommandText = " insert into LiuYan(UerName,contents,subject) values(@UerName,@contents,@subject)"; 5 SqlParameter[] parameters = { 6 new SqlParameter("@UerName",SqlDbType.VarBinary), 7 new SqlParameter("@contents", SqlDbType.VarBinary), 8 new SqlParameter("@subject", SqlDbType.VarBinary), 9 }; 10 parameters[0].Value = UerName; 11 parameters[1].Value = contents; 12 parameters[2].Value = subject; 13 14 foreach (SqlParameter item in parameters) 15 { 16 comm.Parameters.Add(item); 17 } 18 comm.ExecuteNonQuery(); 19 conn.Close(); 20 Response.Redirect("LiuYan.aspx"); 21 }
提问需要粘贴代码时,用一下插入代码的功能,代码会好看很多。
检查一下你的SQL语句跟数据库的表结构是否一致,或者是不是有不能为null的字段没有插入数据。
谢谢你的回复
把数据库varbinary类型的 改为 nvarchar 的
谢了
呵呵呵