读书人

DataTable找不到主键了,该怎么处理?求

发布时间: 2013-08-04 18:26:16 作者: rapoo

DataTable找不到主键了,该怎么办?求高人指点.
我的 SQL 语句为:

[FId] as [编号],[FName] as [姓名],[FSex] as [性别],[FPhone] as [电话号码],[Fqq] as [QQ],[FWordPhone] as [国际电话号码],[FEMail] as [EMail],[FHandSet] as [手机号] 

获得的DataTable后,发现可以添加新行...但是找不到指定的行,如:
DataRow rNew = _TableAccept.NewRow();   //添加新成员行.
//赋值信息.
rNew["编号"] = idVal;
rNew["姓名"] = nameVal;
rNew["性别"] = sexVal;
rNew["电话号码"] = phoneVal;
rNew["QQ"] = qqVal;
rNew["国际电话号码"] = worldPhoneVal;
rNew["EMail"] = emailVal;
rNew["手机号"] = handSetVal;
_TableAccept.Rows.Add(rNew);
_TableAccept = TableClass.AddressBook.UpdateMembersByDataTable(_TableAccept); //几时更新表,以防编号重复.
_AddSucceedCount += 1; //标志添加一个新成员.
MessageBox.Show("添加成功!");

这个可以.

//待编辑的成员行.
DataRow rSelected = _AcceptTable.Rows.Find(_SelectedMemberId); //这行报错.说没有主键.
//修改值.
//rSelected["编号"] = _SelectedMemberId;
rSelected["姓名"] = nameVal;
rSelected["性别"] = sexVal;
rSelected["电话号码"] = phoneVal;
rSelected["QQ"] = qqVal;
rSelected["国际电话号码"] = worldPhoneVal;
rSelected["EMail"] = emailVal;


rSelected["手机号"] = handSetVal;
_AcceptTable = TableClass.AddressBook.UpdateMembersByDataTable(_AcceptTable); //更新数据.
MessageBox.Show("修改成功!");



当我传的 DataTable给上面的两种形式都一样的时候,也是这样.
好奇怪.下面的代码部分,我根据主键值去查找的行.我的表是设置主键的.求高人指点.
[解决办法]
_TableAccept 这个是datable吧;

编号是主键吗?
demo:
DataTable dt = new DataTable();
dt.Columns.Add("编号");
DataColumn[] cols = new DataColumn[] { dt.Columns["编号"]};
dt.PrimaryKey = cols;//设置一个为主键。

读书人网 >C#

热点推荐