列名 'u120120528174740' 无效。

Ll19910113 2012-05-30 01:27:10
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
if (Session["adminName"] == null)
{
//Page.RegisterStartupScript("kk", "<script>alert('请先登录')</script>");
Response.Write("请先<a href='login2.aspx'>登录</a>");
Response.End();
}
if (Request.QueryString["id"] == null)
{
Page.RegisterStartupScript("k1", "<script>alert('缺少参数!');</script>");
Response.End();
}
//查询新闻
string cnnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(cnnstr);
string selectcmd = "select * from orders where [orderId]=" + Request.QueryString["id"];
SqlDataAdapter da = new SqlDataAdapter(selectcmd, connection);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
Label8.Text = ds.Tables[0].Rows[0].ItemArray[0].ToString();
TextBox2.Text = ds.Tables[0].Rows[0].ItemArray[1].ToString();
TextBox5.Text = ds.Tables[0].Rows[0].ItemArray[2].ToString();
TextBox6.Text = ds.Tables[0].Rows[0].ItemArray[3].ToString();
TextBox7.Text = ds.Tables[0].Rows[0].ItemArray[4].ToString();
string sqlcmd = "select * from orderDetails where [orderId]=@orderId";
SqlDataAdapter dc = new SqlDataAdapter(sqlcmd, connection);
dc.SelectCommand.Parameters.AddWithValue("@orderId", ds.Tables[0].Rows[0].ItemArray[0].ToString());
DataSet dd = new DataSet();
dc.Fill(dd);
if (dd.Tables[0].Rows.Count > 0)
{
TextBox3.Text = dd.Tables[0].Rows[0].ItemArray[1].ToString();
TextBox4.Text = dd.Tables[0].Rows[0].ItemArray[2].ToString();
}
}

}
这是传入参数的一段代码,u120120528174740这个是orderId列中的一个内容,不知道为什么一直报错,列名 'u120120528174740' 无效。
...全文
91 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ll19910113 2012-05-30
  • 打赏
  • 举报
回复
谢谢大家
threenewbee 2012-05-30
  • 打赏
  • 举报
回复
要注意sql注入的问题。

比如当你"select * from orders where [orderId]=" + Request.QueryString["id"];做拼接的时候,而Request.QueryString["id"]内容是“123 and 不存在的列=1”
那么得到的sql就是select * from orders where [orderId]=123 and 不存在的列=1,显然就会出错,而且更严重的,有可能会造成安全问题。
threenewbee 2012-05-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
[orderId]='" + Request.QueryString["id"]+"'";
[/Quote]
加上引号看看。
bdmh 2012-05-30
  • 打赏
  • 举报
回复
"select * from orders where [orderId]=" + Request.QueryString["id"];
上面那句话orderId你去到的是u120120528174740,而你数据库中根本没有字段名为 u120120528174740的字段,这应该是个值,而你当做字段名了
arecaiz 2012-05-30
  • 打赏
  • 举报
回复
[orderId]='" + Request.QueryString["id"]+"'";

62,268

社区成员

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

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

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

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