我尝试从我在 vs 2008 中构建的网站将数据插入 sql server。为此,我使用了按钮单击事件。我尝试了 youtube 中显示的代码,但代码不起作用。它在我的网站中显示错误。
.aspx.cs文件中的代码是
public partial class _Default : System.Web.UI.Page
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
conn.Open();
}
protected void btnInsert_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("insert into Insert values('"+txtCity.Text+"','"+txtFName.Text+"','"+txtLName.Text+"')",conn);
cmd.ExecuteNonQuery();
conn.Close();
Label1.Visible =true;
Label1.Text = "Your data inserted successfully";
txtCity.Text = "";
txtFName.Text = "";
txtLName.Text = "";
}
} `
最佳答案
好的,让我们稍微修改一下这段代码。你到达那里:
var cnnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
var cmd = "insert into Insert values(@City,@FName,@LName)";
using (SqlConnection cnn = new SqlConnection(cnnString))
{
using (SqlCommand cmd = new SqlCommand(cmd, cnn))
{
cmd.Parameters.AddWithValue("@City",txtCity.Text);
cmd.Parameters.AddWithValue("@FName",txtFName.Text);
cmd.Parameters.AddWithValue("@LName",txtLName.Text);
cnn.Open();
cmd.ExecuteNonQuery();
}
}
有关修改后的代码的一些注意事项。
- 它利用
using
语句来确保正确处理资源。 - 它已参数化以确保不可能发生 SQL 注入(inject)。
- 它没有在任何地方存储连接对象,删除已存储的连接。
关于c# - 如何在asp.net 网站中向sql server 中插入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18077527/