C# 如何将记录插入sql server express数据库表?

C# 如何将记录插入sql server express数据库表?,c#,.net,sql-server,sql-server-express,sql-server-2012,C#,.net,Sql Server,Sql Server Express,Sql Server 2012,我正在尝试向名为site\u list的数据库表插入文本框值 site\u列表表包含两列id和site\u name,id设置为自动递增 这是我正在尝试的代码,当它执行时没有错误,但是数据没有显示在表中 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=.\\SQLExpress;" + "User Instance=true;" +

我正在尝试向名为
site\u list
的数据库表插入文本框值

site\u列表
表包含两列
id
site\u name
id
设置为自动递增

这是我正在尝试的代码,当它执行时没有错误,但是数据没有显示在表中

SqlConnection conn = new SqlConnection();
conn.ConnectionString =
             "Data Source=.\\SQLExpress;" +
             "User Instance=true;" +
             "Integrated Security=true;" +
             "AttachDbFilename=|DataDirectory|scraper_db.mdf;";            

SqlCommand addSite = new SqlCommand("INSERT INTO site_list (site_name) "
     + " VALUES (@site_name)", conn);

addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = textBox1.Text;

conn.Open();
addSite.ExecuteNonQuery();
conn.Close();
任何帮助都将不胜感激

问候

编辑:

这个代码开始工作了

    string connstring = "Data Source=.\\SQLExpress;"+
                        "Integrated Security=true;"+
                        "User Instance=true;"+
                        "AttachDBFilename=|DataDirectory|scraper_db.mdf;"+
                        "Initial Catalog=scraper_db";

    using (SqlConnection connection = new SqlConnection(connstring))
    {
        connection.Open();
        SqlCommand addSite = new SqlCommand("INSERT INTO site_list (site_name)"+
                             "VALUES (@site_name)", connection);
        addSite.Parameters.AddWithValue("@site_name", textBox1.Text); 
        addSite.ExecuteNonQuery();
        connection.Close();
    }
试试这个:

string sql = String.Format("INSERT INTO site_list (site_name) VALUES('{0}')", myTextBox.Text);
using(SqlConnection connection = new SqlConnection(myConnectionString))
{
   connection.open();
   using(SqlCommand cmd = new SqlCommand(sql, connection))
   {
      cmd.ExecuteNonQuery();
   }
}

祝你好运

正如人们建议的那样,尝试在服务器上创建数据库(使用它会更容易处理)。 完成后,请尝试以下操作(刚刚测试过,效果良好):


尝试将文本框值存储在变量中。例如:

@stringname = textbox1.text
addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = @stringname;
(重要!不需要@in@stringname,但可以保护您免受黑客攻击!)


这段代码为我创造了奇迹。

我的道歉。我之前给出的答案不起作用,因为insert命令中使用的变量名(在您的案例中为@site_name)必须与sqlcommand中使用的变量匹配。例如:

@site_name = textbox1.text
addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = textBox1.Text;

很抱歉,我可能造成了混乱。

您使用的是
用户实例/AttachDbFilename=
方法,我个人认为这种方法有时非常混乱。您是否尝试运行代码,在
conn.Close()
上设置断点,当代码停止时,使用SQL Server Mgmt Studio Express等工具检查数据目录中的数据库文件??用户实例的内容往往是围绕MDF文件复制的,因此您的插入可能发生得很好-但是当您查看它时,您看到的是数据库的旧版本(没有插入),感谢您提供的信息,使用sql server express执行插入-更新-删除操作的最佳方法是什么?请将您的代码包装在一个供初学者使用的Try-Catch中。。还要将addSite.Parameter(…)更改为addSite.Parameters.AddWIthValue(“@site_name”,textBox1.Text);Parameters.Add已被删除..我将始终在服务器上创建数据库(例如,在SQL server Management Studio Express中),然后使用其逻辑数据库名称连接到该数据库(不要随意处理物理数据库文件-.mdf和.ldf-将其留给服务器...)
@stringname = textbox1.text
addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = @stringname;
@site_name = textbox1.text
addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = textBox1.Text;