SqlDataSource InsertParameters问题

hz890 2007-04-25 11:06:35
SqlDataSource1.InsertParameters["userId"].DefaultValue = Session["userid"].ToString();

Session["userid"].ToString()的值为“109EFDDD-9CAB-4CE1-BBFB-EE07021F9A96”

而执行插入时报错:
无法将 NULL 值插入列 'userId',表 'Test1.dbo.AddressLists';该列不允许空值。INSERT 失败。语句已终止。

是何原因??


还有:
SqlDataSource1.InsertParameters["frdPhone"].DefaultValue = txtTel.Text.Trim();
当txtTel.Text.Trim()为""时,报错:
无法将 NULL 值插入列"Tel",表 'Test1.dbo.Tel';该列不允许空值。INSERT 失败。语句已终止。
""并不等同于Null ,不明白?
...全文
787 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hz890 2007-04-25
  • 打赏
  • 举报
回复
跟踪SqlDataSource1.InsertParameters,看各个参数的值是否准确
-----------------------------------------------------------------
跟踪过了,值没有问题
CathySun118 2007-04-25
  • 打赏
  • 举报
回复
lz给出的信息不够,无法断言
littlekeen 2007-04-25
  • 打赏
  • 举报
回复
跟踪SqlDataSource1.InsertParameters,看各个参数的值是否准确
hz890 2007-04-25
  • 打赏
  • 举报
回复
确保你在执行SqlDataSource1 插入的 时候
没有先将Session["userid"] = null;
-------------------------------------
插入的 时候Session["userid"]="109EFDDD-9CAB-4CE1-BBFB-EE07021F9A96"
已经调试过

第二个 看看你的数据库中的 字段类型 是否 是 数字型 而不是 字符型
字段类型为nvarchar(255) not null,不允许null,但应该允许""呀!!!
littlekeen 2007-04-25
  • 打赏
  • 举报
回复
看数据类型是否匹配,参数是否有类型处理,稍微跟踪一下就行了,其实
fxqyyzg 2007-04-25
  • 打赏
  • 举报
回复
设下断点,找出执行的SQL语句

在查询分析器里执行下

查检字段类型
hertcloud 2007-04-25
  • 打赏
  • 举报
回复
确保你在执行SqlDataSource1 插入的 时候
没有先将Session["userid"] = null;

第二个 看看你的数据库中的 字段类型 是否 是 数字型 而不是 字符型
yumiaojin 2007-04-25
  • 打赏
  • 举报
回复
SqlDataSource1.InsertParameters["userId"].value
yjddit 2007-04-25
  • 打赏
  • 举报
回复
在否?110343042
周公 2007-04-25
  • 打赏
  • 举报
回复
没用过*DataSource,访问数据库的代码一般都是自己写。
zhilaizhiw 2007-04-25
  • 打赏
  • 举报
回复
""并不等同于Null,是不错,但是经过程序的sql语句,将""插入到DB里,就会将其等同与null了。

另外,你的session值一定丢失了。在
SqlDataSource1.InsertParameters["userId"].DefaultValue = Session["userid"].ToString();
上面加个语句:
string a =Session["userid"].ToString();
调试一下。
shadow841112 2007-04-25
  • 打赏
  • 举报
回复
1 确定Session["userid"].ToString()的值;

2.ConvertEmptyStringToNull StringNull != DBNull
hz890 2007-04-25
  • 打赏
  • 举报
回复
求各位帮忙啊,一经解决,百分相赠!!!
hz890 2007-04-25
  • 打赏
  • 举报
回复
你应该将数据处理层从逻辑层中分离出来的,一劳永逸!
-----------------------------------------------------------------------------
我是初学者,现不考虑这么远,眼下力求掌握基础
fordfamily 2007-04-25
  • 打赏
  • 举报
回复
你应该将数据处理层从逻辑层中分离出来的,一劳永逸!
hz890 2007-04-25
  • 打赏
  • 举报
回复
SqlDataSource1.InsertParameters是否可以接受空字符串?

........
SqlDataSource1.Insert();

........
protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
lblProcess.Text= e.Command.CommandText;
string userId = Session["userid"].ToString();
string frdName = txtName.Text.Trim().Replace("'","''");
string frdPhone = txtTel.Text.Trim().Replace("'", "''");
string frdMobile = txtMobile.Text.Trim().Replace("'", "''");
string frdAddress = txtAddress.Text.Trim().Replace("'", "''");
string frdPostcode = txtPostcode.Text.Trim().Replace("'", "''");
string frdEmail = txtEmail.Text.Trim().Replace("'", "''");
e.Command.CommandText = "";
e.Command.CommandText = "INSERT INTO [AddressLists] ([userId], [frdName], [frdPhone], [frdPostcode], [frdEmail], [frdAddress], [frdMobile]) VALUES";
e.Command.CommandText += "('" + userId + "','" + frdName+"','"+frdPhone+"','"+frdPostcode+"','"+frdEmail+"','"+frdAddress+"','"+frdMobile+"')";

//SqlDataSource1.InsertParameters["userId"].DefaultValue =s ;
//SqlDataSource1.InsertParameters["frdName"].DefaultValue = txtName.Text.Trim();
//SqlDataSource1.InsertParameters["frdPhone"].DefaultValue = txtTel.Text.Trim();
//SqlDataSource1.InsertParameters["frdMobile"].DefaultValue = txtMobile.Text.Trim();
//SqlDataSource1.InsertParameters["frdAddress"].DefaultValue = txtAddress.Text.Trim();
//SqlDataSource1.InsertParameters["frdPostcode"].DefaultValue = txtPostcode.Text.Trim();
//SqlDataSource1.InsertParameters["frdEmail"].DefaultValue = txtEmail.Text.Trim();
}

即便文本框的值为"",照样没有问题,但是换作参数就会出错,莫名其妙!!!
hz890 2007-04-25
  • 打赏
  • 举报
回复
还没解决问题呢,快继续呀!!!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧