【发布时间】:2012-02-20 14:51:10
【问题描述】:
我正在尝试将文本框值插入到名为 site_list 的数据库表中。
site_list 表包含两列 id 和 site_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();
}
【问题讨论】:
-
您使用的是
User Instance / 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 - 将其留给服务器.....)
标签: c# .net sql-server sql-server-express sql-server-2012