写了一个方法,有错误,却找不出来

spawn_yang 2010-09-19 09:39:16
private bool CheckID(string lpn, string shipment_id)
{
bool isgood;
SqlCommand com = new SqlCommand("select internal_shipment_num from shipping_container where container_id='" + lpn + "'", con);
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
if (reader.IsDBNull(0))
{
string i = reader.GetString(0);
}

}
reader.Close();

SqlCommand comm = new SqlCommand("select internal_shipment_num from shipment_header where shipment_id='" + shipment_id + "'", con);
SqlDataReader myreader = comm.ExecuteReader();
if (myreader.Read())
{
if (myreader.IsDBNull(0))
{
string t = myreader.GetString(0);
}

}
myreader.Close();

if (i==t)
{
isgood = true;
}
else
{
isgood = false;
}

return isgood;

}


这里有2个地方我总感觉不对,但是不知道如何修正
1、if (i==t)这样的写法好像不对
2、reader.Close();myreader.Close()放在哪个位置的问题
...全文
126 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dai78 2010-09-20
  • 打赏
  • 举报
回复
没报错
ysz89757 2010-09-20
  • 打赏
  • 举报
回复
学习下
完美算法 2010-09-20
  • 打赏
  • 举报
回复
if (reader.IsDBNull(0))
{
string i = reader.GetString(0);
}
if (myreader.IsDBNull(0))
{
string t = myreader.GetString(0);
}
这两个错了应写成:
string i;
if (reader.IsDBNull(0))
{
i= reader.GetString(0);
}
string t
if (myreader.IsDBNull(0))
{
t= myreader.GetString(0);
}
C#没有全局变量
战斗牙刷 2010-09-19
  • 打赏
  • 举报
回复
全局变量 和局部变量的问题
spawn_yang 2010-09-19
  • 打赏
  • 举报
回复
2楼的写法我测试过了,但是有个问题

不管i是不是和t的值相等,返回值都是false
为什么呢?
RHINO_WU 2010-09-19
  • 打赏
  • 举报
回复
你的变量声明在局部,所以比较变量i和变量t的时候会报错。Varable is not define!类似这样的错误吧!
wubudang 2010-09-19
  • 打赏
  • 举报
回复
1、i和t的定义应该放到isgood附近。
2、要判断reader和myreader是否为空的吧。放到if(reader.read())的后面是可以的。
Snowdust 2010-09-19
  • 打赏
  • 举报
回复
大概写了一个,方法跟你的不太一样,你自己调试下:
private bool CheckID(string lpn, string shipment_id)
{
bool isgood = false;
SqlConnection con = new SqlConnection("");
con.Open();
SqlCommand com = new SqlCommand("select internal_shipment_num from shipping_container where container_id='" + lpn + "'", con);
SqlCommand comm = new SqlCommand("select internal_shipment_num from shipment_header where shipment_id='" + shipment_id + "'", con);
try
{
object i = com.ExecuteScalar();
object t = comm.ExecuteScalar();

if (i == DBNull.Value || i == null || t == DBNull.Value || t == null)
{
isgood = false;
}
else
{
isgood = (i.ToString() == t.ToString());
}
}
catch
{
isgood = false;
}
finally
{
con.Close();
}
return isgood;
}
spawn_yang 2010-09-19
  • 打赏
  • 举报
回复
前面打开数据库的内容我没有贴上来了

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧