private OleDbDataReader GetData(string SqlStr_)
{
OleDbCommand command = new OleDbCommand(SqlStr_, conn);
OleDbDataReader reader = null;
try
{
reader = command.ExecuteReader();
return reader;
}
catch (System.Exception ex)
{
return null;
}
}
多次调用访问数据库读取数据会产生异常崩溃,reader会为空,但是数据库不为空。求高手指点!
{
OleDbCommand command = new OleDbCommand(SqlStr_, conn);
OleDbDataReader reader = null;
try
{
reader = command.ExecuteReader();
return reader;
}
catch (System.Exception ex)
{
return null;
}
}
多次调用访问数据库读取数据会产生异常崩溃,reader会为空,但是数据库不为空。求高手指点!
private DataSet GetData(string SqlStr_)
{
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(SqlStr_, conn);
try
{
da.Fill(ds);
}
catch (System.Exception ex)
{
ds = null;
}
return ds;
}
比如:
using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionString, CommandType.StoredProcedure, "PageView", parms))
{
while (rdr.Read())
{
//dosomething 填充实体
}
}
string sql = string.Format("select tx from DeviceKind where id={0}", DeviceKind_id);
OleDbDataReader dr = GetData(sql);
if (dr == null)
{
return;
}
if (dr.Read())
{
object image_ = dr.GetValue(0);
if (image_==DBNull.Value)
{
pictureBox1.Image = null;
return;
}
byte[] mydata = (byte[])image_;
Stream myStream = new MemoryStream(mydata);
try
{
pictureBox1.Image = Image.FromStream(myStream);
}
catch (System.Exception ex)
{
}
myStream.Dispose();
myStream.Close();
pictureBox1.Refresh();
}
dr.Close();
这里对应怎么实现啊?请指教
public DataSet GetData(string SqlStr_)
{
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(SqlStr_, conn);
try
{
da.Fill(ds);
}
catch (System.Exception ex)
{
ds = null;
}
return ds;
}
string sql = string.Format("select tx from DeviceKind where id={0}", DeviceKind_id);
DataSet ds = GetData(sql);
if (dr == null)
{
return;
}
else
{
object image_ = ds.Tables[0].Rows[0][0];
if (image_==DBNull.Value)
{
pictureBox1.Image = null;
return;
}
byte[] mydata = (byte[])image_;
Stream myStream = new MemoryStream(mydata);
try
{
pictureBox1.Image = Image.FromStream(myStream);
}
catch (System.Exception ex)
{
}
myStream.Dispose();
myStream.Close();
pictureBox1.Refresh();
}
刚刚试了,发现问题并不是出在这里。
public DataSet GetData(string SqlStr_)
{
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(SqlStr_, conn);
try
{
da.Fill(ds);
}
catch (System.Exception ex)
{
ds = null;
}
return ds;
}
错误出现在上面的catch里跟原来用的private OleDbDataReader GetData(string SqlStr_)问题一样,读取为空。请问是什么原因?求指教!
或者没有执行SQLcommand.ExecuteNonQuery();//添加这里 执行SQL语句
reader = command.ExecuteReader();
刚又调试了一下,发现问题出在OleDbCommand command = new OleDbCommand(SqlStr_, conn);这一句。
错误显示为:command参数无效