我尝试将数据插入到我的数据库中,所有操作都成功完成,但在执行SQL查询后数据库不会更新。它是基于Windows的应用程序。我将连接字符串放在app.config
文件中。
当我运行此应用程序代码时。并插入显示msg"数据插入"的数据,但是当我检查数据库时,数据库中没有更新数据....给我一些解决方案。
我使用Visual Studio 2013和SQL Server 2012。
这是我的代码:
namespace Sample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["cons"].ConnectionString.ToString());
sqlcon.Open();
string str = "insert into tab(name,pwd) values('" + textBox1.Text.ToString() + "','" + textBox2.Text.ToString() + "')";
SqlCommand cmd = new SqlCommand(str, sqlcon);
cmd.ExecuteNonQuery();
MessageBox.Show("Data inserted");
cmd.Clone();
}
catch(Exception E)
{
MessageBox.Show("No data inserted");
}
}
}
}
的App.config
<configuration>
<connectionStrings>
<add name="cons"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename='|DataDirectory|\Database1.mdf';Integrated Security=True"/>
</connectionStrings>
</configuration>
答案 0 :(得分:1)
我只是用(| DataDirectory | \ Database.mdf)替换连接字符串中的完整路径....就像这样
<configuration>
<connectionStrings>
<add name="cons" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename='C:\Users\Dhaval\documents\visual studio 2013\Projects\Sample\Sample\Database.mdf';Integrated Security=True"/>
</connectionStrings>
</configuration>
所以连接字符串访问权限数据库的应用程序..不是(。\ bin \ debug)&#34; Database.mdf&#34;文件..
答案 1 :(得分:0)
首先,为了防止注入攻击并避免语法错误,请使用参数。其次,为确保资源得到妥善处理,请使用“使用”声明。第三,显示抛出的错误消息。以下(未经测试的)代码说明了这些技术。另外,用于?
的cmd.Clone()是什么? private void button1_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["cons"].ConnectionString.ToString());
try
{
using (sqlcon)
{
sqlcon.Open();
string str = "insert into tab(name,pwd) values(@Value1, @Value2)";
using (SqlCommand cmd = new SqlCommand(str, sqlcon))
{
cmd.Parameters.Add(new SqlParameter("Value1", TextBox1.Text));
cmd.Parameters.Add(new SqlParameter("Value2", TextBox2.Text));
cmd.ExecuteNonQuery();
MessageBox.Show("Data inserted");
//cmd.Clone();
}
}
}
catch (Exception E)
{
throw new Exception(E.Message);
}
finally
{
sqlcon.Close();
}
}