有人可以帮我这个代码吗? 提交信息时我有一些问题, 无法添加到数据库。这是为登录表单创建的我添加所有的信息和东西,但它不工作可以有人看看这个代码可能会发现一个错误。
$
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegisterConnectionString"].ConnectionString);
conn.Open();
string checkuser = "select count(*) from UserDataT where Username='" +TextBoxUN.Text + "'";
SqlCommand com = new SqlCommand(checkuser, conn);
int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
if (temp == 1)
{
Response.Write("Ky user egziston");
}
conn.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegisterConnectionString"].ConnectionString);
conn.Open();
string insertQuery = "insert into UserDataT (Username,E-Mail,Password,Shteti) values (@Uname ,@email ,@password ,@shteti)";
SqlCommand com = new SqlCommand(insertQuery, conn);
com.Parameters.AddWithValue("@Uname", TextBoxUN.Text);
com.Parameters.AddWithValue("@email", TextBoxEM.Text);
com.Parameters.AddWithValue("@password", TextBoxPW.Text);
com.Parameters.AddWithValue("@shteti", DropDownList1.SelectedItem.ToString());
com.ExecuteNonQuery();
Response.Redirect("Manager.aspx");
Response.Write("Regjistrimi eshte bere me sukses");
conn.Close();
}
catch (Exception ex)
{
Response.Write("ERROR:" + ex.ToString());
}
$
答案 0 :(得分:1)
E-Mail
在SQL中不是有效的identifier。一般来说,最好避免像这样创建列名,但是,如果您坚持使用此列名,请尝试分隔标识符,如下所示:
string insertQuery = "insert into UserDataT (Username,[E-Mail],Password,Shteti) values (@Uname ,@email ,@password ,@shteti)";
但就个人而言,我更喜欢在SQL查询中划分所有表或列名称,这只是一种风格问题,因为它有助于更清楚地识别查询的各个部分,如下所示: / p>
string insertQuery = "INSERT INTO [UserDataT] ([Username],[E-Mail],[Password],[Shteti]) VALUES (@Uname ,@email ,@password ,@shteti)";
答案 1 :(得分:0)
尝试更改此行:
string insertQuery = "insert into UserDataT (Username,E-Mail,Password,Shteti) values (@Uname ,@email ,@password ,@shteti)";
到此:
string insertQuery = "insert into UserDataT (Username,[E-Mail],Password,Shteti) values (@Uname ,@email ,@password ,@shteti)";
请注意,我已将E-Mail
更改为[E-Mail]
。如果您的列或表名称带有空格或短划线,则需要包含方括号。
答案 2 :(得分:0)
在插入声明中
insert into UserDataT (Username,E-Mail,Password,Shteti)
您无法编写电子邮件,因为减号不是有效字符,除非列名称被[]包围。如果真的调用了该列,请将其写为[电子邮件]。否则,请使用正确的列名。
答案 3 :(得分:0)
问题与名为“电子邮件”的列有关。将列(首选)重命名为不带连字符(Email)的内容,或将列名称包含在括号内[电子邮件]
我建议重命名表格列