数据库操作的问题
怎么同时对两个数据表插入数据
你要是access数据库的话,分别写两个插入语句进行插入分开执行。比如:
#region //数据插入
if (option == "Insert")//是否为新行
{
try
{
if (e.ColumnIndex == 1)//是否为名称列
{
if (!(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null))//非空
{
string sqlInsertMaterials = @"insert into Materials ( MaterialName) values ('";
sqlInsertMaterials += dataGridView1.CurrentCell.Value.ToString() + "')";
string sqlInsertNutrition = @"insert into Nutrition ( MaterialName) values ('";
sqlInsertNutrition += dataGridView1.CurrentCell.Value.ToString() + "')";
if (db.ExecuteSql(sqlInsertMaterials) == 1 && db.ExecuteSql(sqlInsertNutrition) == 1)
{
MessageBox.Show("插入成功!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
catch
{
MessageBox.Show("插入失败!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally { Bind();}
}
#endregion
要是sql数据库写两个插入语句中间用分号隔开一次执行。比如:
#region //数据插入
if (option == "Insert")//是否为新行
{
try
{
if (e.ColumnIndex == 1)//是否为名称列
{
if (!(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null))//非空
{
string sqlInsertMaterials = @"insert into Materials ( MaterialName) values ('";
sqlInsertMaterials += dataGridView1.CurrentCell.Value.ToString() + "')";
sqlInsertMaterials += @";insert into Nutrition ( MaterialName) values ('";
sqlInsertMaterials += dataGridView1.CurrentCell.Value.ToString() + "')";
if (db.ExecuteSql(sqlInsertMaterials) == 2)
{
MessageBox.Show("插入成功!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
catch
{
MessageBox.Show("插入失败!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally { Bind();}
}
#endregion
因为access数据库不支持一次运行两个sql语句只能分别运行,sql数据库支持一次运行多个sql语句。