URL参数栏:Message_operate.aspx?Message_ID=564f9a92-bc57-46a3-ab5c-be2180ec56ed代码如下:
Guid MessageID =Guid.Parse( Request.QueryString["Message_ID"].ToString()); string str_sql = "select * from Web_MessageBox where Message_ID=" + MessageID; conn = new OleDbConnection(str_connection);
conn.Open(); cmd = new OleDbCommand(str_sql, conn);
datar = cmd.ExecuteReader(); if (datar.Read())
{
lb_date.Text = datar["Message_CreateTime"].ToString();
lb_sendername.Text = datar["Message_SenderName"].ToString();
lb_email.Text = datar["Message_Email"].ToString();
lb_tel.Text = datar["Message_Tel"].ToString();
lb_title.Text = datar["Message_Title"].ToString();
div_MessageContent.InnerHtml = datar["Message_Content"].ToString();
}
conn.Close();报错页:麻烦各位大师给分析分析是什么原因?
我用INT和时间戳作ID,都是没有问题的,换成GUID就出问题了,数据库ID类型也换成了uniqueidentifier
Guid MessageID =Guid.Parse( Request.QueryString["Message_ID"].ToString()); string str_sql = "select * from Web_MessageBox where Message_ID=" + MessageID; conn = new OleDbConnection(str_connection);
conn.Open(); cmd = new OleDbCommand(str_sql, conn);
datar = cmd.ExecuteReader(); if (datar.Read())
{
lb_date.Text = datar["Message_CreateTime"].ToString();
lb_sendername.Text = datar["Message_SenderName"].ToString();
lb_email.Text = datar["Message_Email"].ToString();
lb_tel.Text = datar["Message_Tel"].ToString();
lb_title.Text = datar["Message_Title"].ToString();
div_MessageContent.InnerHtml = datar["Message_Content"].ToString();
}
conn.Close();报错页:麻烦各位大师给分析分析是什么原因?
我用INT和时间戳作ID,都是没有问题的,换成GUID就出问题了,数据库ID类型也换成了uniqueidentifier
解决方案 »
- asp.net下如何实现下面的操作
- asp.net中关于FileUploader的用法
- .net 下拉框DropDownList取值问题
- MYSQL 语法错了..帮我看看 急
- 进度条的问题
- FCKeditor.Net_2.2 FOR .NET的用法.
- 菜鸟问题
- 简单的问题,但没搞定问问大家。
- .NET 安装问题!我的XP没有FrontPage服务器扩展~~~~
- 在ASP.NET页面中如何实现弹出类似msgbox的对话框,有“确定”“取消”等选项?(alert不能实现)!!!!!!!!!!!!!
- 异常详细信息: System.InvalidCastException: 指定的转换无效。
- 怎么给DataTable中某一行设置颜色
请帮我修改一下,谢谢.看不出你是用什么数据库系统。把你的数据库系统“管理客户端”中查看 Message_ID 字段的定义,截图贴出来。你想啊,哪一个数据库系统 13384332fc23-234234-a23这能直接写到等号后边吗?
string str_sql = "select * from Web_MessageBox where Message_ID=" + MessageID;MessageID变量是字符串,需要前后有带单引号。
另外你的这个参数是从地址栏传的,如果用户稍改一下这个参数值,在其加一个单引号的话,也会有问题,也得处理。
请帮我修改一下,谢谢.看不出你是用什么数据库系统。把你的数据库系统“管理客户端”中查看 Message_ID 字段的定义,截图贴出来。你想啊,哪一个数据库系统 13384332fc23-234234-a23这能直接写到等号后边吗?我用的是SQL SERVER 2008
已经按照你的方法解决,以前一直用的INT,所以没有当作字符串处理.
现在改成以下后运行OK了,再次感谢你的提醒.
string str_sql = "select * from Web_MessageBox where Message_ID=' " + MessageID+" ' ";
带有单引号的,会出错,sql注入。
最好是采用参数化的形式。
简单的处理,就是MessageID.Replace("'","''"),将一个单引号替换成两个单引号
这句话明显没有单引号啊。
人家guid也是一个字符串。