c# - sql插入asp.net

标签 c# asp.net sql sql-server

con.Open();
SqlCommand cmd=new SqlCommand("INSERT INTO user(Firstname,Lastname,Email,Pass,Type)
    values(@first,@last,@email,@pass,@type)",con);
cmd.Parameters.Add("@first",SqlDbType.NVarChar).Value = txtfirst.Text;
cmd.Parameters.Add("@last",SqlDbType.NVarChar).Value = txtlast.Text;
cmd.Parameters.Add("@email",SqlDbType.NVarChar).Value = txtemail.Text;
cmd.Parameters.Add("@pass",SqlDbType.NVarChar).Value = txtpass.Text;
cmd.Parameters.Add("@type",SqlDbType.NVarChar).Value = "customer";
cmd.ExecuteNonQuery();
con.Close();

我的语法有什么问题,它说“关键字‘user’附近的语法不正确。”

最佳答案

您应该使用分隔标识符转义表名 user

SqlCommand cmd=new SqlCommand("INSERT INTO [user] (Firstname,Lastname,Email,Pass,Type) values(@first,@last,@email,@pass,@type)",con);

更新 1

折射你的代码

  • 使用 using 语句正确处理对象
  • 使用Try-Catch block 正确处理异常

代码片段:

string _connStr = "connectionString here";
string _query = "INSERT INTO [user] (Firstname,Lastname,Email,Pass,Type) values (@first,@last,@email,@pass,@type)";
using (SqlConnection conn = new SqlConnection(_connStr))
{
    using (SqlCommand comm = new SqlCommand())
    {
        comm.Connection = conn;
        comm.CommandType = CommandType.Text;
        comm.CommandText = _query;
        comm.Parameters.AddWithValue("@first", txtfirst.Text);
        comm.Parameters.AddWithValue("@last", txtlast.Text);
        comm.Parameters.AddWithValue("@email", txtemail.Text);
        comm.Parameters.AddWithValue("@pass", txtpass.Text);
        comm.Parameters.AddWithValue("@type", "customer");
        try
        {
            conn.Open();
            comm.ExecuteNonQuery();
        }
        catch(SqlException ex)
        {
            // other codes here
            // do something with the exception
            // don't swallow it.
        }
    }
}

关于c# - sql插入asp.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537214/

相关文章:

c# - ASP.Net MVC Update ViewModel on DropDown Selection changed

c# - 从 json 序列化列表对象构建动态表

sql - 用于 28 天滑动窗口聚合的 BigQuery SQL(无需编写 28 行 SQL)

mysql - 如何从 MySQL 表中的两个不同列中获取总和

c# - 在 C# 中链接 bool

c# - WPF TreeViewItem 切换按钮可见性

c# - MVC5/C# : Pass LINQ inner Join query to view model

javascript - 将 C# 函数返回值传递给 Javascript

javascript - 检测浏览器和版本 - 没有 Modernizr

SQLPlus 结果在一行