我的連接字符串中使用是這樣的不同:App.config中的作用比普通方式
SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=G:\I.S\C#\billingSystem\Store.mdf;Integrated Security=True;User Instance=True");
,所以我可以(插入,更新,刪除)這一點:
SqlCommand cmd = new SqlCommand("SQLSTATEMENT", cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
我已經在YouTube上看到的教程稱爲「部署C#項目」,當他用
System.Configuration;
和app.config
文件,所以我跟着政黨成員里亞爾完全相同的方式,它的工作原理。
在運行後我(插入,更新,刪除)一切都沒問題,直到我關閉應用程序,就像我沒有做任何事情,我插入的數據都沒有了!
我需要在運行時將更改保存到表中。
一些信息:Winforms應用程序,樣品從我的代碼:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="SchoolProjectConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SchoolDB.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
namespace SchoolProject
{
public partial class Main : Form
{
SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SchoolProjectConnectionString"].ToString());
public Main()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button1_Click(object sender, EventArgs e)
{
string myValue = Interaction.InputBox("Enter ID", "ID", "", 100, 100);
string myValue0 = Interaction.InputBox("Enter Name", "Name", "", 100, 100);
int X = Convert.ToInt32(myValue);
SqlCommand cmd = new SqlCommand("Insert into Student(ID, Student) Values ('" + X + "','" + myValue0 + "')", cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
private void button2_Click(object sender, EventArgs e)
{
string myValue3 = Interaction.InputBox("Enter ID", "ID", "", 100, 100);
int X = Convert.ToInt32(myValue3);
SqlCommand cmd = new SqlCommand("SELECT * FROM Student WHERE id = '" + X + "'", cn);
cn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
MessageBox.Show(reader["Student"].ToString());
}
}
cn.Close();
}
private void button3_Click(object sender, EventArgs e)
{
Report R = new Report();
R.Show();
}
}
}
在您的Visual Studio調試器中,連接字符串或app.config的行爲不可能與運行時不同。除非您指定明確使用[XDT轉換](http://msdn.microsoft.com/zh-cn/library/dd465326.aspx)。請將你的app.config的內容添加到問題中;如果您的項目中沒有出現任何錯誤,但似乎確實起作用,那麼您可能正在與另一個數據庫交談? –
檢查你的項目,Db在解決方案Expl中是否可見,是否有CopyLocal = true? –
是它可見,如何知道它是否有CopyLocal = true? –