如何连接到本地数据库并在C#中更新数据集?
我已将一些产品(产品包含:唯一id-主键、名称、价格、数量)存储在本地数据库文件(Stock.mdf,产品的表称为“表”)中 该文件位于Visual Studio中的“我的项目”文件夹中。当有人调用表单(WPF)中的操作时,应更新条目(新数量) 在我的C代码文件中,我使用以下代码连接到数据库:如何连接到本地数据库并在C#中更新数据集?,c#,wpf,database,visual-studio,mdf,C#,Wpf,Database,Visual Studio,Mdf,我已将一些产品(产品包含:唯一id-主键、名称、价格、数量)存储在本地数据库文件(Stock.mdf,产品的表称为“表”)中 该文件位于Visual Studio中的“我的项目”文件夹中。当有人调用表单(WPF)中的操作时,应更新条目(新数量) 在我的C代码文件中,我使用以下代码连接到数据库: System.Data.SqlClient.SqlConnection con; con = new System.Data.SqlClient.SqlConnection(); con.Connecti
System.Data.SqlClient.SqlConnection con;
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\Stock.mdf; |
Integrated Security=True;
Connect Timeout=30;
User Instance=True";
//Do i need the connect timeout? Found it somewhere in the web
我知道我可以使用以下命令在SQL中更新表:
UPDATE table
SET Quantity=newQuantity
WHERE Id=GivenId;
如何连接到本地数据集并使用c#中的新数量更新产品?首先,请使用
使用
语句。它们将确保调用IDisposable.Dispose()
从内存写入:
string cs = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\Stock.mdf; |
Integrated Security=True;
Connect Timeout=30;
User Instance=True";
using (SqlConnection con = new SqlConnection(cs))
using (SqlCommand cmd = new SqlCommand("UPDATE table SET Quantity=@q WHERE Id=@Id", con))
{
cmd.Parameters.AddWithValue("@q", newQuanity);
cmd.Parameters.AddWithValue("@Id", GivenId);
con.Open();
cmd.ExecuteNonQuery();
}
我需要连接超时吗?在网上的某个地方找到的
在大多数情况下,违约是可以接受的
请注意,最好将连接字符串放在app.config(或web.config,用于web应用)中
要在Microsoft Visual studio中使用C#连接到Sql数据库,必须手动添加
System.Data.SqlSeverCe.dll
名称引用,如下所示:
- 右键单击您的项目>>添加参考
- 浏览>>>C:\Program Files\Microsoft SQL server Compact edition\v3.5\Desktop
- 加载>>>System.Data.SqlSeverCe.dll>>>添加
<connectionStrings>
<add name="MyConnectionName" connectionString="Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\Stock.mdf; |
Integrated Security=True;
Connect Timeout=30;
User Instance=True" providerName="System.Data.SqlClient" />
</connectionStrings>
string cs =
ConfigurationManager.ConnectionStrings["MyConnectionName"].ConnectionString;