标题:[求助]请教DropDownList插入语句写法问题
只看楼主
zengdan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-4
 问题点数:0 回复次数:8 
[求助]请教DropDownList插入语句写法问题

我想把图书信息插入数据库,插入的时候图书的类型采用DropDownList下拉框选择,图书的类型另外建了一张表,将DropDownList与数据绑定了,在这张信息表中与图书类型表中的ID进行关联,可是写插入语句的时候有错,见下面程序中红色的部分,请问那 =后面的语句怎么写才正确?
string Sqlstring = "Insert into BookInfo(BookName,PublishingHouse,Author,Translator,ISBN,PublishDate,Price,Description,suoyinhao,booktype)values(@dname,@dpublish,@dauthor,@dtranslator,@disbn,@dpublishdate,@dprice,@ddescription,@dsuoyinhao,@dbooktype)";

conn.Open();
SqlCommand cmd = new SqlCommand(Sqlstring, conn);
cmd.Parameters.Add("@dname", SqlDbType.VarChar, 80).Value = TextBox1.Text.ToString();
cmd.Parameters.Add("@dpublish", SqlDbType.VarChar, 80).Value = TextBox9.Text.ToString();
cmd.Parameters.Add("@dauthor", SqlDbType.VarChar, 80).Value = TextBox3.Text.ToString();
cmd.Parameters.Add("@dtranslator", SqlDbType.VarChar, 80).Value = TextBox7.Text.ToString();
cmd.Parameters.Add("@disbn", SqlDbType.VarChar, 80).Value = TextBox4.Text.ToString();
cmd.Parameters.Add("@dpublishdate", SqlDbType.VarChar,80).Value = TextBox8.Text.ToString();
cmd.Parameters.Add("@dprice", SqlDbType.VarChar, 80).Value = TextBox5.Text.ToString();

cmd.Parameters.Add("@ddescription", SqlDbType.Text, 16).Value = TextBox10.Text.ToString();
//cmd.Parameters.Add("@dcover", SqlDbType.VarChar, 50).Value = TextBox2.Text.ToString();
cmd.Parameters.Add("@dbooktype", SqlDbType.Int, 4).Value = Convert.ToInt32(DropDownList1.SelectedValue);
cmd.Parameters.Add("@dsuoyinhao", SqlDbType.VarChar,80).Value = TextBox6.Text.ToString();
cmd.ExecuteNonQuery();

Response.Write("<script>alert(\"添加成功\")</script>");
conn.Close();
Response.Write("<br><br><meta http-equiv='refresh' content='1;url=booklitterset.aspx'><br>");


运行后错误提示:
“/zd”应用程序中的服务器错误。
--------------------------------------------------------------------------------

输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:


行 69: cmd.Parameters.Add("@ddescription", SqlDbType.Text, 16).Value = TextBox10.Text.ToString();
行 70: //cmd.Parameters.Add("@dcover", SqlDbType.VarChar, 50).Value = TextBox2.Text.ToString();
行 71: cmd.Parameters.Add("@dbooktype", SqlDbType.Int, 4).Value = Convert.ToInt32(DropDownList1.SelectedValue);
行 72: cmd.Parameters.Add("@dsuoyinhao", SqlDbType.VarChar,80).Value = TextBox6.Text.ToString();
行 73: cmd.ExecuteNonQuery();
“/zd”应用程序中的服务器错误。
--------------------------------------------------------------------------------

输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:


行 69: cmd.Parameters.Add("@ddescription", SqlDbType.Text, 16).Value = TextBox10.Text.ToString();
行 70: //cmd.Parameters.Add("@dcover", SqlDbType.VarChar, 50).Value = TextBox2.Text.ToString();
行 71: cmd.Parameters.Add("@dbooktype", SqlDbType.Int, 4).Value = Convert.ToInt32(DropDownList1.SelectedValue);
行 72: cmd.Parameters.Add("@dsuoyinhao", SqlDbType.VarChar,80).Value = TextBox6.Text.ToString();
行 73: cmd.ExecuteNonQuery();

源文件: e:\zengdan\admin\booklitterset.aspx.cs 行: 71

搜索更多相关主题的帖子: DropDownList 语句 数据库 图书 类型 
2007-05-08 10:46
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
得分:0 
cmd.Parameters.Add("@dbooktype", SqlDbType.Int, 4).Value = Convert.ToInt32(DropDownList1.SelectedValue);
//response.write(DropDownList1.SelectedValue);
//("@dbooktype", SqlDbType.Int, 4).你这里的4是什么意思?如果是整形的话 我通常是不设定的的!是限定了该类型最大值是4么?

决定人生~
2007-05-08 10:55
zengdan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-4
得分:0 
是数据库里设置Int型默认的
2007-05-08 10:58
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
得分:0 
是吗?我怎么处理这么多回了都没有用过这个 ?
实在无语了~!
response.write(DropDownList1.SelectedValue); 你用这个来显示下 这个的值是什么!
挺怀疑这个值不是数字类型的!

决定人生~
2007-05-08 11:10
zengdan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-4
得分:0 
在图书类型表里的图书类型是varchar型
还有一个ID,是自动增长的,就是插入一个图书类型,ID就增加1
在图书信息表里的图书类型是通过图书类型表里的ID传过来的
设外键关联
不然我不知道怎么用DropDownList来选择另一个表的值插入到我要插的表中
2007-05-08 11:19
zengdan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-4
得分:0 
ID的类型是int型,数据库里默认是4,修改不 了的
2007-05-08 11:20
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 
DropDownList1.SelectedValue的数据类型不对,不可转换.
用DropDownList1.TEXT看看

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-05-08 12:40
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
加个try..catch..就可以知道了,

飘过~~
2007-05-08 12:53
zengdan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-4
得分:0 
用DropDownList1.TEXT也不行
用try...catch在这里怎么用啊
2007-05-08 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-137590-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.097631 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved