首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataTable找不到主键了,该怎么处理?求高人指点

2013-08-04 
DataTable找不到主键了,该怎么办?求高人指点.我的 SQL 语句为:[FId] as [编号],[FName] as [姓名],[FSex]

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;//设置一个为主键。

热点排行