C#连接到SQL,提示: 行 26: SqlDataReader rd = cmd.ExecuteReader(); 输入字符串的格式不正确.

我用C#做了个简单的网站连接到SQL数据库,有个点击详情页,这个是详情页的代码:protectedvoidPage_Load(objectsender,EventArgs... 我 用 C#做了个简单的网站连接到SQL数据库,有个点击详情页,这个是详情页的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["bookid"] != null) //如果请求页面存在请求//参数,则进行数据读取
{
String constr = @"Data Source=ADMIN-PC\SQLEXPRESS;Initial Catalog=Library;Integrated Security=True;";
SqlConnection conn = new SqlConnection(constr);//定义连接对象
conn.Open(); //打开连接
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from Book where BOOKID=@BOOKID";
//下面代码给命令参数赋值
cmd.Parameters.Add("@BOOKID",SqlDbType.Int).Value = Request.QueryString["bookid"].ToString();
//在连接环境中使用ADO.NET,即执行命令
SqlDataReader rd = cmd.ExecuteReader();
if (rd.Read())
{
Label1.Text = rd["NAME"].ToString(); //新闻标题
Label2.Text = rd["TYPE"].ToString(); //发布人
Label3.Text = rd["AUTHOR"].ToString(); //发布日期
Label4.Text = rd["PUBLICATIONDATE"].ToString();//新闻内容
Label5.Text = rd["PUBLISHINGHOUSE"].ToString();//新闻内容

rd.Close(); //关闭阅读器
conn.Close(); //关闭连接
}
else
{
rd.Close();
conn.Close();
Response.Redirect("error.aspx"); //页面定位到出错页面。
}
}
}

}

就提示这一行
行 26: SqlDataReader rd = cmd.ExecuteReader(); 输入字符串的格式不正确.
第一次用C#连接数据库,很多都不懂,求帮助。
展开
 我来答
meimeide960
推荐于2016-04-09 · TA获得超过121个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:58.1万
展开全部
Request.QueryString["bookid"].ToString();
这个字符串里面包含字母或特殊字符了可能。因为 【("@BOOKID",SqlDbType.Int).】看起来应该是一个数值型的值。所以在执行语句时发生错误。
追问
bookid的值是在SQL表格中设为自动标识队列的,是int型
追答
Request.QueryString["bookid"].ToString();  但是这个值是从画面传递过来的。确认一下他的值是什么。

最终的错误就是画面上传递的值和Db的类型不一致。两方再确认一下。
captain2005
2015-12-07 · TA获得超过1058个赞
知道小有建树答主
回答量:2041
采纳率:40%
帮助的人:557万
展开全部
你数据库的bookid肯定不是int格式的数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式