c#sqldatareader.Read()为空与读取失败

privatevoidpicChange(){byte[]imgData=getBytes();if(imgData!=null){if(Login.idstr!=nul... private void picChange()
{
byte[] imgData = getBytes();
if (imgData != null)
{
if (Login.idstr != null)
{
SqlConnection conn = new SqlConnection();

conn.ConnectionString = "Data Source=理想人生;Initial
Catalog=DiaryShow;Persist Security Info=True;User ID=sa;Password=123";
string sql = "select * from idimg where id='" + Login.idstr + "'";
SqlDataAdapter sdq = new SqlDataAdapter();
SqlCommand cmdm = new SqlCommand(sql, conn);
conn.Open();
SqlDataReader sdr = cmdm.ExecuteReader();
if ( sdr.Read())//判断读取是否失败
{
if (sdr.HasRows)//判断是否有数据
{
//更新
}else{ //插入}
}
else//读取失败,本来是用catch (exption ex)的
{
//插入,这儿插入却成功了。
}
}
}
}
我想问的是:验证数据库是否有某个ID的数据是怎么弄的?这种方式有点不靠谱吧?!帮帮忙,谢谢。

我想知道,比如
展开
 我来答
ashlll0
2015-06-02 · TA获得超过929个赞
知道小有建树答主
回答量:1354
采纳率:81%
帮助的人:559万
展开全部
sdr.Read() 假如SQL语句 有某个ID的数据 返回值为true 否则为 else
返回值并不是读取是否成功的的意思

另外这句最好用try
conn.Open();
SqlDataReader sdr = cmdm.ExecuteReader();
如果出错,才是读取失败(比如数据库连接失败、超时什么的)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式