获取错误无法将参数值从SqlParameter转换为String。

编程入门 行业动态 更新时间:2024-10-22 21:27:46
本文介绍了获取错误无法将参数值从SqlParameter转换为String。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在数据库中插入值时出现以下错误 无法转换参数值字符串的SqlParameter。

I got the following error while insert value in the database Failed to convert parameter value from a SqlParameter to a String.

cmd = new SqlCommand("insert into user_senditem(user_senditem_id,username,user_id,department_id,attached_files,subject,message,compl_nature,compl_type,group_id,apartment_id,area_id,date_time,type,created_on,created_by,Image) values(@usendid,@username,@userid,@deptid,@attached,@subject,@message,@cmplnature,@comptype,@groupid,@apartmentid,@areaid,@datetime,@type,@createdon,@createdby,@image2)", conn); SqlParameter usendid = new SqlParameter("@usendid", SqlDbType.VarChar, 50); usendid.Value = txtUserSentId.Text; cmd.Parameters.Add(usendid); SqlParameter username = new SqlParameter("@username ", SqlDbType.VarChar, 50); username.Value = Session["username"]; cmd.Parameters.Add(username); SqlParameter userid = new SqlParameter("@userid", SqlDbType.VarChar, 50); userid.Value = Session["id"]; cmd.Parameters.Add(userid); SqlParameter deptid = new SqlParameter("@deptid", SqlDbType.VarChar, 50); deptid.Value = "Admin"; cmd.Parameters.Add(deptid); SqlParameter attached = new SqlParameter("@attached", SqlDbType.VarChar, 50); attached.Value = uploadedDocument; cmd.Parameters.Add(attached); SqlParameter subject = new SqlParameter("@subject", SqlDbType.VarChar, 50); subject.Value = txtSubject.Text; cmd.Parameters.Add(subject); SqlParameter message = new SqlParameter("@message", SqlDbType.VarChar, 300); message.Value = txtMessage.Text; cmd.Parameters.Add(message); SqlParameter cmplnature = new SqlParameter("@cmplnature", SqlDbType.VarChar, 50); cmplnature.Value = "Complaint"; cmd.Parameters.Add(cmplnature); SqlParameter comptype = new SqlParameter("@comptype", SqlDbType.VarChar, 50); comptype.Value = ddl_ComplType.SelectedItem; cmd.Parameters.Add(comptype); SqlParameter groupid = new SqlParameter("@groupid", SqlDbType.VarChar, 50); groupid.Value = Session["group_id"]; cmd.Parameters.Add(groupid); SqlParameter apartmentid = new SqlParameter("@apartmentid", SqlDbType.VarChar, 50); apartmentid.Value = Session["apartment_id"]; cmd.Parameters.Add(apartmentid); SqlParameter areaid = new SqlParameter("@areaid", SqlDbType.VarChar, 50); areaid.Value = Session["area_id"]; cmd.Parameters.Add(areaid); SqlParameter datetime = new SqlParameter("@datetime", SqlDbType.DateTime); datetime.Value = lblDatetime.Text; cmd.Parameters.Add(datetime); SqlParameter type = new SqlParameter("@type", SqlDbType.VarChar, 50); type.Value = "N"; cmd.Parameters.Add(type); SqlParameter createdon = new SqlParameter("@createdon", SqlDbType.VarChar, 50); createdon.Value = DateTime.Now; cmd.Parameters.Add(createdon); SqlParameter createdby = new SqlParameter("@createdby", SqlDbType.VarChar, 50); createdby.Value = SystemInformation.UserName; cmd.Parameters.Add(createdby); SqlParameter image2 = new SqlParameter("@image2", SqlDbType.Binary, filelen); image2.Value = buffer; cmd.Parameters.Add(image2); cmd.ExecuteNonQuery();

推荐答案

你没有告诉我们哪个SQLParameter导致错误。但我确实注意到,在将日期转换为SQLParameter之前,您没有将日期转换为DateTime格式。 You didn't tell us which SQLParameter caused the error. I did notice, though, that you did not convert the date to DateTime format before putting it into the SQLParameter. SqlParameter datetime = new SqlParameter("@datetime", SqlDbType.DateTime); datetime.Value = DateTime.Parse(lblDatetime.Text); cmd.Parameters.Add(datetime);

注意:我的示例没有错误检查。用户可能以不正确的格式输入日期。您应该进行错误检查以防止这种情况。 我还发现了将DateTime类型值分配给VarChar类型的位置。我通过将参数类型更改为DateTime来更正此问题。

Note: My example does no error checking. It is possible that the user enters a date in an incorrect format. You should have error checking to prevent that. I also found where you were assigning a DateTime type value to a VarChar type. I corrected that by changing the parameter type to DateTime.

SqlParameter createdon = new SqlParameter("@createdon", SqlDbType.DateTime, 50); createdon.Value = DateTime.Now; cmd.Parameters.Add(createdon);

只是一张便条...... 更简单的做法就是说 cmd.Parameters.AddWithValue(createdon,DateTime.Now); Just a note... Shorter way of doing this is just by saying cmd.Parameters.AddWithValue("createdon", DateTime.Now);

实际上是什么问题意味着我在编码中使用了uploaddocument ...那个文件是以二进制格式存储在db..tats wat中得到这个错误...谢谢你们.. Actually what is the problem means i have using uploaddocument in my coding...that document was store in binary format in db..tats wat getting this error...thanks guys..

更多推荐

获取错误无法将参数值从SqlParameter转换为String。

本文发布于:2023-11-01 18:23:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1550070.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   错误   参数   SqlParameter   String

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!