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;