C# 数据未从windows窗体插入到数据库表中
我正在开发一个桌面应用程序。我开发了一个用户输入数据的表单。当他单击submit按钮时,数据保存在一个名为Pakreastat的数据库中。问题是数据没有插入到表中,我得到一个错误:C# 数据未从windows窗体插入到数据库表中,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我正在开发一个桌面应用程序。我开发了一个用户输入数据的表单。当他单击submit按钮时,数据保存在一个名为Pakreastat的数据库中。问题是数据没有插入到表中,我得到一个错误:SqlException未处理 当我单击Submit按钮时,它会提示错误。 按钮后面的代码如下所示: protected void button2_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection("Data So
SqlException未处理
当我单击Submit按钮时,它会提示错误。
按钮后面的代码如下所示:
protected void button2_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=ali-pc/sqlexpress.PakEstateAgency.dbo");
con.Open();
SqlCommand cmd = new SqlCommand("insert into ClientINFO(Application#,LDAReg#,Size,Name,SDW/O,CNIC,Address,Image,giventime)" +
"values (" + Convert.ToInt32(textBox1.Text) + ",'" +
textBox2.Text + "','" +
textBox4.Text + "'," +
textBox5.Text + "," +
textBox6.Text + "," +
textBox7.Text + "," +
textBox8.Text +
"," + textBox3.Text + ")", con);
cmd.ExecuteNonQuery();
MessageBox.Show("Insertion successfully done");
}
始终将您的代码放入
尝试。。。catch
如果您正在使用datatbase进行事务处理,则阻止
如果建立了与数据库的连接,并且没有问题,那么
最后五个文本框中缺少单引号。我假设最后五列是ur datatbse中的nvarchar
类型
将命令更改为
SqlCommand cmd = new SqlCommand("insert into ClientINFO(Application#,LDAReg#,Size,Name,SDW/O,CNIC,Address,Image,giventime) values (" + Convert.ToInt32(textBox1.Text) + ",'" + textBox2.Text + "','" + textBox4.Text + " ','" + textBox5.Text + "','" + textBox6.Text+ "','" +textBox7.Text+ "','"+textBox8.Text +"','"+textBox3.Text+"')", con);
您的SqlConnection中存在问题 确保您的连接字符串是正确的
SqlConnection con = new SqlConnection("Data Source=ali-pc/sqlexpress.PakEstateAgency.dbo");
应该是这样的
SqlConnection con = new SqlConnection("Data Source=ADMIN3-PC;Initial Catalog=master;Integrated Security=True");
检查连接字符串和SQL insert语句 我建议您直接使用sql参数而不是textbox文本属性作为值。 因为这是一个常见的漏洞,称为SQL注入。 我还建议使用using语句来确保连接已关闭
using (var con = new SqlConnection("Data Source=ali-pc/sqlexpress.PakEstateAgency.dbo"))
{
con.Open();
using (var cmd = new SqlCommand("insert into ClientINFO(Application#,LDAReg#,Size,Name,SDW/O,CNIC,Address,Image,giventime)" + "values (@Application#,@LDAReg#, ... )", con))
{
cmd.Parameters.AddWithValue("@Application#", Convert.ToInt32(textBox1.Text));
cmd.Parameters.AddWithValue("@LDAReg#", textBox2.Text);
// add the other parameters ...
cmd.ExecuteNonQuery();
}
}
MessageBox.Show("Insertion successfully done");
最后5个文本框缺少单引号是否确实正确访问了数据库?以下错误发生在插入语句之前“建立与SQL Server的连接时发生网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)不是有效的连接字符串。可能在语法上有效,但没有人以数据库和架构命名其实例。您能告诉我必须使用哪个连接字符串吗?如何检查是否已建立与数据库的连接?请告诉我您没有按照您的错误说明连接到应用程序数据库,请检查您的连接字符串我已经按照您所说的做了,但问题是相同的…我与数据库的连接没有建立…我真的不知道,请告诉我如何与sql server建立连接。问题是,我不能断言您的连接字符串是正确的。可能服务器实例不正确。看看MSDN