private string _ConnectionStr;//SQL数据库连接字符串
private string _SQLStr;
private SqlConnection _mycon;
private SqlCommand _sqlcom;
private string[] _tablename = { "_SystemList", "_SystemTime" };//两个表名
public SqlDataAdapter _da = new SqlDataAdapter();
public SqlCommandBuilder sqlBulider;
public DataSet _ds = new DataSet();//设置查询语句(两个表)
_SQLStr = " select id ,SystemCode ,SystemName ,ServerAddress ," +
"ServerDataPort ,ServerDatabase ,ServerUser ,ServerPassword from _SystemList " +
" select SystemCode ,indatetime from _SystemTime where SystemCode in (select SystemCode from _SystemList)";
_mycon = new SqlConnection(_ConnectionStr.Trim());
_mycon.Open();
_sqlcom = new SqlCommand(_SQLStr, _mycon);
_da = new SqlDataAdapter(_sqlcom);
sqlBulider = new SqlCommandBuilder(_da);string a;//给_da对像设置表
for (int i = 0; i < _tablename.Length; i++)
{
if (i == 0)
{
a = "Table";
}
else
{
a = "Table" + i;
}
_da.TableMappings.Add(a, _tablename[i]);
}_da.Fill(_ds);//用对像_da填充dataset对像_ds//用两个gridview绑定显示出来
gridControl1.DataSource = DOperate._ds;
gridControl1.DataMember = tablename[0];gridControl2.DataSource = DOperate._ds;
gridControl2.DataMember = tablename[1];//能正常显示if (DOperate._ds.HasChanges())//检查是否被修改过
{
//保存
try
{
lock (this) ;//更新数据时锁住表,不能多用户同时更新
DOperate._da.Update(DOperate._ds.Tables["_SystemList"]);//这里可以正确修改
DOperate._da.Update(DOperate._ds.Tables["_SystemTime"]);//这里出错
MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.None);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
if (DOperate._ds.HasErrors)
{
DOperate._ds.RejectChanges();
}}
DOperate._da.Update(DOperate._ds.Tables["_SystemTime"]);//这里出错
提示DataTable "_SyttemTime" 中缺少 SourceColumn "SystemName" 的 DataColumn "SystemName"
SystemName 字段是第一个表的。这个错要怎么改?求解!谢谢!
private string _SQLStr;
private SqlConnection _mycon;
private SqlCommand _sqlcom;
private string[] _tablename = { "_SystemList", "_SystemTime" };//两个表名
public SqlDataAdapter _da = new SqlDataAdapter();
public SqlCommandBuilder sqlBulider;
public DataSet _ds = new DataSet();//设置查询语句(两个表)
_SQLStr = " select id ,SystemCode ,SystemName ,ServerAddress ," +
"ServerDataPort ,ServerDatabase ,ServerUser ,ServerPassword from _SystemList " +
" select SystemCode ,indatetime from _SystemTime where SystemCode in (select SystemCode from _SystemList)";
_mycon = new SqlConnection(_ConnectionStr.Trim());
_mycon.Open();
_sqlcom = new SqlCommand(_SQLStr, _mycon);
_da = new SqlDataAdapter(_sqlcom);
sqlBulider = new SqlCommandBuilder(_da);string a;//给_da对像设置表
for (int i = 0; i < _tablename.Length; i++)
{
if (i == 0)
{
a = "Table";
}
else
{
a = "Table" + i;
}
_da.TableMappings.Add(a, _tablename[i]);
}_da.Fill(_ds);//用对像_da填充dataset对像_ds//用两个gridview绑定显示出来
gridControl1.DataSource = DOperate._ds;
gridControl1.DataMember = tablename[0];gridControl2.DataSource = DOperate._ds;
gridControl2.DataMember = tablename[1];//能正常显示if (DOperate._ds.HasChanges())//检查是否被修改过
{
//保存
try
{
lock (this) ;//更新数据时锁住表,不能多用户同时更新
DOperate._da.Update(DOperate._ds.Tables["_SystemList"]);//这里可以正确修改
DOperate._da.Update(DOperate._ds.Tables["_SystemTime"]);//这里出错
MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.None);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
if (DOperate._ds.HasErrors)
{
DOperate._ds.RejectChanges();
}}
DOperate._da.Update(DOperate._ds.Tables["_SystemTime"]);//这里出错
提示DataTable "_SyttemTime" 中缺少 SourceColumn "SystemName" 的 DataColumn "SystemName"
SystemName 字段是第一个表的。这个错要怎么改?求解!谢谢!
DOperate._da.Update(DOperate._ds.Tables["_SystemTime"]);这里指明是update第二表,但总是提示缺少第一表里的字段