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

sqldatareader的有关问题~

2012-01-28 
sqldatareader的问题~~publicSqlDataReaderGetPersonData(stringcPsnNum){stringselectStrselectcPsn_Nu

sqldatareader的问题~~
public   SqlDataReader   GetPersonData(string   cPsnNum)
                {
                        string   selectStr   =   "select   cPsn_Num,cPsn_Name   from   person   where   cPsn_Num= "+cPsnNum;
                        this.sqlC   =   new   SqlConnection(DBOperate.connectStr);
                        this.sqlCmd   =   new   SqlCommand(selectStr,   this.sqlC);
                        this.sqlC.Open();
                        this.sqlDr   =   this.sqlCmd.ExecuteReader();
                        return   this.sqlDr;
                }

private   void   dataGridView1_CellDoubleClick(object   sender,   DataGridViewCellEventArgs   e)
                {
                        if   (dataGridView1.CurrentCell.OwningColumn.HeaderText   ==   "人员编号 ")
                        {
                                if   (dataGridView1.CurrentRow.DataBoundItem   ==   null)
                                {
                                        return;
                                }
                                else
                                {  
                                        dataGridView1.Visible   =   false;
                                        tabControl1.Visible   =   true;  
                                }
                                DBOperate   dbop   =   new   DBOperate();
                                SqlDataReader   sdr   =   dbop.GetPersonData(dataGridView1.CurrentCell.Value.ToString());
                                sdr.Read();
                                cPsn_Num.Text   =   sdr[0].ToString();
                                cPsn_Name.Text   =   sdr[1].ToString();


                        }
                }

person表cPsn_Num列中有一个值为GSFH,此列字符类型为nvarchar(),每次执行到sdr.Read()时,就提示在将   nvarchar   值   'GSFH '   转换成数据类型   int   时失败,为什么?

[解决办法]
是不是cPsn_Num是整数类型,而dataGridView1.CurrentCell.Value是不能转换为整数的值.
[解决办法]
sdr数据进来了?怎么没有判断HasRows??

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q64180940(请清楚注明业务还是技术咨询)
==================================================================
[解决办法]
string selectStr = "select cPsn_Num,cPsn_Name from person where cPsn_Num= "+cPsnNum;

这个sql语句应该是
"select cPsn_Num,cPsn_Name from person where cPsn_Num= ' "+cPsnNum + " ' ";

因为你传进来的就是字符串
[解决办法]
如果数据库中的cPsn_Num字段为整型。那就
int x = int.Parse(cPsnNum);
string selectStr = "select cPsn_Num,cPsn_Name from person where cPsn_Num= "+ x;

热点排行