我目前正在开展一个项目,我被要求在WPF上工作,并满足以下要求:
这背后的想法是,如果我们收到多个包裹,每个货物通常分成多个位置,我们需要找到每个组件的位置。
我已经在下面提供了我的代码示例,它的准系统并且可能不仅仅包含将要插入的“记录”字段。我已将RecordID字段设置为标识字段,因此我不担心声明ID字段。它不包含在样本中,但每条记录都链接到ShipmentID。
我很感激任何帮助,因为我执行它时遇到了麻烦(并且我的研究已经碰壁了)因为我的代码遇到了:
'System.InvalidOperationException'发生在System.Data.dll'中,CommandText属性未初始化错误,当我尝试保存记录时。我遗憾地发现只有模糊的花絮如何解决我的问题(或者我在研究中可能很糟糕)。
private void StackAddTB(object sender, RoutedEventArgs e)
{
TextBox NewBox = new TextBox() { Margin = new Thickness(0, 10, 0, 0), Width = 100, Height = 20 };
StackBoxes.Children.Add(NewBox);
}
private void SaveMulti(object sender, RoutedEventArgs e)
{
string CStr = Manifesting.Properties.Settings.Default.PSIOpsSurfaceCS;
SqlConnection Connection = new SqlConnection(CStr);
string Query = "INSERT INTO TestLoop (Record), Values (Record)";
SqlCommand Command = new SqlCommand(Query, Connection)
foreach (TextBox TestTB in StackBoxes.Children.OfType<TextBox>())
{
try
{
Connection.Open();
Command = Connection.CreateCommand();
Command.Parameters.AddWithValue("@Record", TestTB.Text );
Command.ExecuteNonQuery();
}
catch (SqlException ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
Connection.Close();
}
}
编辑:我已经检查了循环文本框问题(根据先生的红色评论),虽然我发现其他帖子中的一些有用的东西,但它没有详细说明如何保存这些值一个数据库。
答案 0 :(得分:0)
执行此操作时:
Command = Connection.CreateCommand();
Command.Parameters.AddWithValue("@Record", TestTB.Text );
Command.ExecuteNonQuery();
你之前在Command
中“破坏”了什么,所以你永远不会在任何地方指定实际的查询。这就是为什么它会给你一个例外 - 你实际上不给它运行查询。
注意这一行:
SqlCommand Command = new SqlCommand(Query, Connection);
目前没有任何区别。