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#连接数据库,很多都不懂,求帮助。 展开
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#连接数据库,很多都不懂,求帮助。 展开
2个回答
展开全部
Request.QueryString["bookid"].ToString();
这个字符串里面包含字母或特殊字符了可能。因为 【("@BOOKID",SqlDbType.Int).】看起来应该是一个数值型的值。所以在执行语句时发生错误。
这个字符串里面包含字母或特殊字符了可能。因为 【("@BOOKID",SqlDbType.Int).】看起来应该是一个数值型的值。所以在执行语句时发生错误。
追问
bookid的值是在SQL表格中设为自动标识队列的,是int型
追答
Request.QueryString["bookid"].ToString(); 但是这个值是从画面传递过来的。确认一下他的值是什么。
最终的错误就是画面上传递的值和Db的类型不一致。两方再确认一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询