【发布时间】:2013-05-20 14:26:33
【问题描述】:
当我运行我的应用程序时会出现此问题。 Express Profiler 显示与数据库的连接发生了两次,因此问题出在代码中!
代码示例我在这里定义要发送的内容。
label_Map.Text = message.Substring(21, 3);
label_Sys.Text = message.Substring(15, 3);
label_Dia.Text = message.Substring(18, 3);
label_Pulse.Text = message.Substring(26, 3);
//System.IO.File.WriteAllText(@"D:\String.txt", label_Sys.Text);
//System.IO.File.WriteAllText(@"D:\String.txt", label_Dia.Text);
//System.IO.File.WriteAllText(@"D:\String.txt", label_Pulse.Text);
SaveData(
message.Substring(15, 3),
message.Substring(18, 3),
message.Substring(26, 3)
//label_Sys.Text,
//label_Dia.Text,
//label_Pulse.Text
在这里发送代码
private void SaveData(string sys, string dia, string pulse)
{
try
{
string connectionString = @"Data Source=PlUTO-PC\;Initial Catalog=merisana;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
// connection.Open();
string queryString = "INSERT INTO dbo.merisana_test (sys, dia, pulse) VALUES (@sys, @dia, @pulse)";
SqlCommand command = new SqlCommand(queryString, connection);
//command.CommandText = string.Format("INSERT INTO merisana1 (sys, dia, pulse) VALUES ({0}, {1}, {2})", sys, dia, pulse);
command.Parameters.AddWithValue("@sys", sys);
command.Parameters.AddWithValue("@dia", dia);
command.Parameters.AddWithValue("@pulse", pulse);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
catch (SqlException ex)
{
Console.WriteLine(ex.Message);
}
}
完整代码在这里https://www.dropbox.com/s/4oitl0p3ldcfo79/Form1.cs?v=0swn-
【问题讨论】:
-
设置断点并单步执行您的代码以查看它在做什么。
-
调试和日志:在
SaveData方法中设置断点并计算该方法被命中的次数。这是 ASP.NET 应用还是桌面应用? -
你是否调用了两次该方法?
-
由于老大哥过滤器工作无法访问您的保管箱,但可能无论您的顶级代码 sn-p 来自哪个事件,都被调用了两次。您粘贴的代码看起来不错。
-
投了反对票,因为您真的只需要单步执行您的代码并准确地观察事情发生的时间。如果由于任何原因无法附加调试器,请尝试记录到文件,甚至是消息框弹出窗口。
标签: c# sql sql-server database