关于datareader的问题
写的一段代码总是提示问题Invalid attempt to Read when reader is closed.
SqlConnection myConnection=new SqlConnection(strconn);
SqlCommand mycomm=new SqlCommand();
string query="select NameCn,NameEn from ClubInfo where id = @Id";
mycomm.CommandText=query;
mycomm.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int,4));
mycomm.Parameters["@Id"].Value = DataGrid1.DataKeys[(int)e.Item.ItemIndex];
mycomm.Connection=myConnection;
myConnection.Open();
SqlDataReader myreader;
myreader=mycomm.ExecuteReader();
myConnection.Close();
myreader.Read();
NameCn=myreader["NameCn"].ToString();
NameEn=myreader["NameEn"].ToString();
不知怎么回事
问题点数:20、回复次数:3Top
1 楼xiahouwen(武眉博<活靶子.NET>)回复于 2003-10-02 03:03:45 得分 10
mycomm.Connection=myConnection;
myConnection.Open();
SqlDataReader myreader;
myreader=mycomm.ExecuteReader();
myConnection.Close();//连接已经关闭了
myreader.Read();
NameCn=myreader["NameCn"].ToString();
NameEn=myreader["NameEn"].ToString();
连接已经关闭了
改为下面试试
mycomm.Connection=myConnection;
myConnection.Open();
SqlDataReader myreader;
myreader=mycomm.ExecuteReader();
myreader.Read();
NameCn=myreader["NameCn"].ToString();
NameEn=myreader["NameEn"].ToString();
myConnection.Close();
Top
2 楼sunpopoapollo(e无so有)回复于 2003-10-02 07:59:48 得分 10
agree with xiahouwen(活靶子.NET)
DataReader读之前,Connection不能是关闭的。
如果想关闭Connection之后,仍然使用DataReader读取数据的话,可以尝试一下方法:
SqlDataReader datareader = cmd.ExecuterReader(System.DataCommandBehavior.CloseConnection);Top
3 楼sunpopoapollo(e无so有)回复于 2003-10-02 08:01:27 得分 0
SqlDataReader datareader = cmd.ExecuterReader(System.Data.CommandBehavior.CloseConnection);
Top




