C# 未将数据写入本地SQL Server数据库文件
我已经编写了从传感器获取数据的程序,我正在尝试将此数据写入本地SQL Server数据库文件 代码不会产生任何错误,但数据未写入数据表 我使用了以下代码:(有什么建议吗?)C# 未将数据写入本地SQL Server数据库文件,c#,sql,sql-server,database,local,C#,Sql,Sql Server,Database,Local,我已经编写了从传感器获取数据的程序,我正在尝试将此数据写入本地SQL Server数据库文件 代码不会产生任何错误,但数据未写入数据表 我使用了以下代码:(有什么建议吗?) 您正在调用ExecuteNonQueryAsync以异步插入记录,但随后您将立即关闭连接,而插入几乎肯定尚未完成 您应该改为使用同步调用,或者正确地使用异步-可能使方法异步,并等待ExecuteNonQueryAsync的结果。基本上,您需要等待操作完成后才能关闭连接 顺便说一句,您根本不需要显式地调用Close——您已经得
您正在调用
ExecuteNonQueryAsync
以异步插入记录,但随后您将立即关闭连接,而插入几乎肯定尚未完成
您应该改为使用同步调用,或者正确地使用异步-可能使方法异步,并等待ExecuteNonQueryAsync
的结果。基本上,您需要等待操作完成后才能关闭连接
顺便说一句,您根本不需要显式地调用
Close
——您已经得到了一个using
语句,因此连接将在执行退出块时被释放。(顺便说一句,不清楚为什么在using
语句中有一个额外的块。)您应该签出并停止使用.AddWithValue()
-这可能会导致意外的结果…您正在插入异步,然后关闭连接。改为调用ExecuteNonQuery
。从属性框中将Database1.mdf的“复制到输出目录”属性值设置为“不复制”。
static void Insert(string date, double value, string deviceName)
{
string path = Directory.GetCurrentDirectory();
string filename = path + "\\Database1.mdf";
Console.WriteLine(filename);
string connectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=" + filename + ";Database=Database1";
using (SqlConnection conn = new SqlConnection(connectionString))
try
{
{
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter();
using (SqlCommand cmd = new SqlCommand("INSERT INTO DataTable VALUES(@Id, @Date, @Value, @Device Name)", conn))
{
num11 += 1;
cmd.Parameters.AddWithValue("@Id", num11);
cmd.Parameters.AddWithValue("@Date", date);
cmd.Parameters.AddWithValue("@Value", value);
cmd.Parameters.AddWithValue("@Device Name", deviceName);
cmd.ExecuteNonQueryAsync();
//rows number of record got inserted
}
conn.Close();
}
}
catch (SqlException es)
{
Console.WriteLine(es);
//Display Error message
}
}