基本上,我有多种形式将数据保存到SQL Servre数据库中。然后datatable
将显示已编译的数据。但是,由于我已将数据从两种不同的形式保存到相同的database
中,因此数据表将具有两行(请参见[截屏])。而且由于我的情况,我必须对数据允许使用空值。
因此,如何将来自不同forms
的多个值保存到SQL Server数据库的同一行中?希望有可能。下面是我的代码:
表格1
private void Bnext_Click(object sender, EventArgs e)
{
//Do SQL for Inspecdate
string mainconn = ConfigurationManager.ConnectionStrings["Delivery_Inspection.Properties.Settings.SavertbConnectionString"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(mainconn);
sqlconn.Open();
string Dateinspect = DateTime.Parse(DTinspec.Text).ToString("dd/MM/yyyy");
SqlCommand cmd = new SqlCommand("insert into Rtbdata(Inspectiondate) values ('" + Dateinspect + "' )", sqlconn);
int i = cmd.ExecuteNonQuery();
if (i != 0)
{
MessageBox.Show("Saved");
}
else
{
MessageBox.Show("Error");
}
sqlconn.Close();
this.Hide();
FormsCollection.autodataset.Show();
}
表格2-与下面的代码相同,除了下面的代码
SqlCommand cmd = new SqlCommand("insert into Rtbdata(Vehnum) values ('" + TBvehicleno.Text + "')", sqlconn);
this.Hide();
FormsCollection.datatable.Show();
答案 0 :(得分:0)
假设您确保只能同时打开一个Form1实例和一个Form2实例,那么您只需要将两个insert语句组合为一个,同时从两个表单中获取值即可。可通过Forms集合访问“其他”表单(即,如果您对Form1的click事件做出反应,则为Form2,反之亦然)。 还请研究SQL注入。您的代码非常容易受到攻击。使用参数进行插入。这也使您可以将Date添加为日期类型而不是字符串。 最后,请将您的SqlConnections包装在using块中。 您将在此站点上找到大量有关所有这些点的示例,并进行一些研究。