ConnDB conn = new ConnDB(); string sjbh; string sql = "select max(SJBH) from T_SJZL Where SJLX = '零售商'";
SqlDataReader dr = conn.datareader(sql);
if (dr.Read())
{
//不足四位左补0
int tmp = dr.GetInt32(0)+1;
sjbh = tmp.ToString().PadLeft(4,'0');
}
else
{
sjbh = "0001";
}
dr.Close();老是提示“在没有任何数据时进行无效的读取尝试。 ”
真的是无语了!数据库里面明明一条记录也没有,却总是要进到 //不足四位左补0
int tmp = dr.GetInt32(0)+1;
sjbh = tmp.ToString().PadLeft(4,'0');请教高手们!
解决方案 »
- ASP.NET部署出现问题
- 怎么动态的为Button添加单击事件
- 客户端验证
- 页面之间传提数据!!帮帮忙啊!很急很急!!!!!
- 这个数据库查询 语法为什么出错 怎么改?请大家指教!(在线等)
- DataSet 对象可用于断线操作数据表
- aps.net中在客户端创建文件夹问题!
- 调用dll方式使用fckeditor,为什么提示插入office光盘?怎么回事,是不是插入光盘就好了?那么能不能让它不弹出这个对话框,因为不是每个
- 多了个三角散分!!!!!!!!为了谢谢陕北吴旗娃大哥和帮助过我的各位兄弟!!!!!!!!
- The statement has been terminated. String or binary data would be truncated
- asp.net浏览器问题
- .net后台连oracle,后台发过去的查询语句只能匹配数字无法匹配字符?
if (dr.Read())
换成if(dr.HasRows) 试试。。
参考资料
private static void ReadOrderData(string connectionString)
{
string queryString =
"select max(SJBH) from T_SJZL Where SJLX = '零售商'"; using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
} // Call Close when done reading.
reader.Close();
}
}
ConnDB conn = new ConnDB(); string sjbh = "0001"; string sql = "select Max(SJBH) from T_SJZL Where SJLX = '零售商'";
SqlDataReader dr = conn.datareader(sql);
if (dr.Read())
{
//不足四位左补0
if (!dr.IsDBNull(0))//多加了这一句
{
int tmp = Int32.Parse(dr.GetString(0)) + 1;
sjbh = tmp.ToString().PadLeft(4, '0');
}
}
dr.Close();代码修改了一下,成功了!没有用楼上的方法,我觉得好像跟我之前用的没什么区别。就是把IF换成While
string sql = "select count(SJBH) from T_SJZL Where SJLX = '零售商'";