如何将记录插入到sql server express数据库表中?
我试图插入一个文本框值到一个名为site_list
的数据库表中。如何将记录插入到sql server express数据库表中?
的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();
}
按照人们的建议,尝试在服务器上创建数据库(使用Sql Management Studio可以更容易处理)。 一旦这样做了,请尝试以下(只是测试和它的作品):
using (SqlConnection conn = new SqlConnection(@"Persist Security Info=False;Integrated Security=true;Initial Catalog=myTestDb;server=(local)"))
{
SqlCommand addSite = new SqlCommand(@"INSERT INTO site_list (site_name) VALUES (@site_name)", conn);
addSite.Parameters.AddWithValue("@site_name", "mywebsitename");
addSite.Connection.Open();
addSite.ExecuteNonQuery();
addSite.Connection.Close();
}
感谢您的解决方案 – 2012-02-20 16:15:39
尝试了这一点:
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();
}
}
好运
感谢您的信息 – 2012-02-20 15:48:48
你没有使用SQL参数。 – 2012-02-20 15:51:46
try
{
using (SqlConnection conn = new SqlConnection(@"Persist Security Info=False;Integrated Security=true;Initial Catalog=myTestDb;server=(local)\SQLEXPRESS;database=Inventory;Data Source=localhost\SQLEXPRESS;"))
{
SqlCommand addSite = new SqlCommand(@"INSERT INTO Creation (Name,Product,Quantity,Category) VALUES (@Name,@Product,@Quantity,@Category)", conn);
addSite.Parameters.AddWithValue("@Name", textBox1.Text);
addSite.Parameters.AddWithValue("@Product", textBox2.Text);
addSite.Parameters.AddWithValue("@Quantity", textBox3.Text.ToString());
addSite.Parameters.AddWithValue("@Category", textBox4.Text);
thisConnection.Open();
addSite.ExecuteNonQuery();
}
}
catch
{
thisConnection.Close();
}
尝试在一个变量存储您的文本框的值。如:
@stringname = textbox1.text
addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = @stringname;
(!重要@stringname的@是没有必要的,但保护您免受黑客)
这段代码有奇效我。
我的歉意。我之前给出的答案是行不通的,因为insert命令中使用的变量名(在你的情况下@site_name)必须与sqlcommand中使用的变量匹配。如在:
@site_name = textbox1.text
addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = textBox1.Text;
对不起,我可能造成的混乱。
您正在使用'User Instance/AttachDbFilename ='方法 - 我个人发现这个方法有时非常混乱和混乱。你是否尝试过运行你的代码,在'conn.Close()'上放置一个断点,当你的代码停在那里时,用你的代码检查数据目录中的数据库文件。 SQL Server Mgmt Studio Express?用户实例的东西倾向于复制MDF文件,因此插入可能发生得很好 - 但是当你看着它时,你正在查看旧版本的数据库(没有插入) – 2012-02-20 14:54:23
感谢您的信息,什么使用sql server express插入更新删除操作的最佳方法是什么? – 2012-02-20 15:14:20
将您的代码包裹在Try Catch for starters中。还要将addSite.Parameter(.....)更改为addSite.Parameters.AddWIthValue(“@ site_name”,textBox1.Text); Parameters.Add已被depricated .. – MethodMan 2012-02-20 15:15:53