【发布时间】:2013-10-05 08:19:25
【问题描述】:
这个问题已经在这里问了好几次了。我阅读了发布的问题,但我仍然有问题。我正在尝试将值从 ASP.Net 表单插入到 SQL Server。我创建了一个示例网站来将数据插入到 Sql 表中。 SQL 数据库的名称是“TestDatabaseDB”,它有一个名为“Person”的表。人员表有 4 列。它们是 ID、FirstName、LastName、NationalID。 ID 的类型是“int”。我设置“是身份:是”。所以 SQL 会为每条插入的记录分配一个 ID。它只是行不通。当我单击按钮时,没有任何反应。它必须将数据插入数据库表或至少清除文本框,但事实并非如此。 我试过了
SqlConnection conn= new SqlConnection(@"Data source=.\SQLEXPRESS; AttachDBFilename=""|DataDirectory|\TestWebSiteDB.mdf""; integrated user=true; User Instance=true")
没有用。所以我把它改成了:
SqlConnection conn = new SqlConnection("Data Source=. ; Database=TestWebSiteDB; Integrated Security=true");
没有任何区别。这是我的代码:
using System;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRegister_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=. ; Database=TestWebSiteDB; Integrated Security=true");
SqlCommand insert = new SqlCommand("insert into Person(FirstName, LastName, NationalID) values(@Name, @Surname, @ID)" ,conn);
insert.Parameters.AddWithValue("@Name", txtboxName.Text);
insert.Parameters.AddWithValue("@Surname", txtboxFamilyName.Text);
insert.Parameters.AddWithValue("@ID", txtboxNationalCode.Text);
try
{
conn.Open();
insert.ExecuteNonQuery();
}
catch
{
LMsg.Text="Error when saving on database";
conn.Close();
}
txtboxName.Text="";
txtboxFamilyName.Text = "";
txtboxNationalCode.Text = "";
}
}
任何帮助将不胜感激。
【问题讨论】:
-
“它没有用”永远是不够的信息。大概您在某个时候遇到了异常 - 如果您捕获并完整记录它,您将获得更多详细信息。
-
你试过 SqlConnection conn = new SqlConnection("Data Source=.\SQLExpress ; Database=TestWebSiteDB; Integrated Security=true");前提是您使用 SQLExpress 作为运行应用程序的本地计算机上的数据库。否则更改“。”使用该机器的 IP 地址。
-
您的 Sql Server 版本是多少?(例如 2008、2012..)
-
先去掉try catch,这样我们就可以从页面中识别出错误了。
-
@JonSkeet 好吧,我的意思是“它不起作用”。因为我没有得到任何错误。单击注册按钮时它只是不插入数据。
标签: c# asp.net sql sql-server