在执行期间,用户代码错误未处理SqlException
本文关键字:错误 未处理 SqlException 代码 用户 执行期 | 更新日期: 2023-09-27 18:12:32
我正在制作页面从表中显示信息(如任何电子邮件网站的收件箱页面)。但是我得到以下错误:
关键字'to'附近语法错误。
下面是我的c#代码:using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class Inbox : System.Web.UI.Page
{
SqlConnection con = new SqlConnection();
SqlCommand cmmd = new SqlCommand();
protected void Page_Load(object sender, EventArgs e)
{
con.ConnectionString=@"Data Source=(LocalDB)'v11.0;AttachDbFilename=c:'Users'user'documents'visual studio 2012'WebSites'Email'App_Data'Database.mdf;Integrated Security=True";
con.Open();
label1.Text = Session["uid"].ToString();
cmmd.CommandText = "select frm from Inbox where to='" + Session["uid2"].ToString() + "'";
cmmd.Connection= con;
SqlDataAdapter daa = new SqlDataAdapter(cmmd);
DataTable dtt = new DataTable();
daa.Fill(dtt);
if(dtt.Rows.Count > 0)
{
label2.Text = dtt.Rows[0][3].ToString();
}
}
}
如何解决这个错误?
使用"[to]"代替"to"。当您使用保留术语作为字段名时,会出现问题。
应该是这样的:
cmmd.CommandText = "select [frm] from [Inbox] where [to]='" + Session["uid2"].ToString() + "'";
编辑:
是的,为了更好的安全性和更少的错误代码,你应该使用SqlParameter,像这样:
cmmd.CommandText = "select [frm] from [Inbox] where [to]=@SID"
cmmd.Parameters.Add("@SID", SqlDbType.Varchar);
cmmd.Parameters["@SID"].Value = Session["uid"].ToString();;