数据未写入本地 SQL Server 数据库文件
本文关键字:SQL Server 数据库 文件 数据 | 更新日期: 2023-09-27 18:35:19
我已经编写了从传感器获取数据的文章,我正在尝试将此数据写入本地SQL Server数据库文件。
代码不会产生任何错误,但数据不会写入数据表。
我使用了以下代码:(有什么建议吗?
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
}
}
您正在调用ExecuteNonQueryAsync
以异步插入记录 - 但随后您将立即关闭连接,而插入几乎肯定尚未完成。
您应该改用同步调用,或者正确使用异步 - 可能使方法异步,并等待ExecuteNonQueryAsync
的结果。基本上,在关闭连接之前,您需要等待操作完成。
顺便说一下,你根本不需要显式调用Close
- 你已经有一个using
语句,所以连接将在执行退出块时被释放。(顺便说一下,目前还不清楚为什么你在using
语句中有一个额外的块。