SqlCommand cmd = new SqlCommand("select column from table1 where ....",sqlConnection1)
sqlConnection1.Open();
string column1=(string)cmd.ExecuteScalar();
sqlConnection1.Close();
这个查询语句是要查找表中的某一个字段的值,如果没有该字段的值为空时,cmd.ExecuteScalar()一句就会出错:末将对象应用到对象的实例.
在不知道查询的结果是否为空时,怎样避免这种错误的发生.
应该用哪个execute...
sqlConnection1.Open();
string column1=(string)cmd.ExecuteScalar();
sqlConnection1.Close();
这个查询语句是要查找表中的某一个字段的值,如果没有该字段的值为空时,cmd.ExecuteScalar()一句就会出错:末将对象应用到对象的实例.
在不知道查询的结果是否为空时,怎样避免这种错误的发生.
应该用哪个execute...
解决方案 »
- c#登录密码的长度超过20位就提示“用户名和密码错误”,程序也检查过了没有限制密码长度,为什么会这样?
- 请帮忙推荐一个基于XML的访问以及写数据的类,谢谢
- c#生成一定格式的word?
- 如何截取网页内容 谢谢
- 简单问题 初学着 急!!!!!!!!!急!!!!!!
- 关于循环的问题
- C#查询出datagridview里有图片,如何在fastreport里打印出来!
- 弱弱的问:如何将byte数组中从某一个地址开始的连续4个字节转换为long?
- DataRow有什么函数可以知道放在它里面的数据是否到底或怎样选择它的第二条信息?
- 初学者提问:我想编写一些小软件,应该用什么语言好些?
- 60分求解: 简单的问题不简单, 关于 WinForm 中的 DataGridView !
- 找 zhengshaodong(曼陀罗)问个问题
ISNULL(字段名,0)
sqlConnection1.Open();
string column1=(string)cmd.ExecuteScalar();
sqlConnection1.Close();
sqlConnection1.Open();
string column1=(string)cmd.ExecuteScalar();
sqlConnection1.Close();
if(obj==Null||obj==DBNull.value)
{
column1="";
}
else
{
column1
}
if(obj==Null||obj==DBNull.value)
{
column1="";
}
else
{
column1=...
}
==============================这个蛮好
oracle nvl(,)不一样的数据库 内部方法都不一样
所以还是 在C#中 用object 比较通用点
高歌和lovejxl的方法就是我现在用的.在cmd.ExecuteScalar()的时候如果没有查到相应的结果,就会报错!
这句改为
string column1=cmd.ExecuteScalar()+"";
这是最简单的办法,但和你的原意是有一点点区别的,看情况使用
因为当查询结果不存在时,在cmd.ExecuteScalar()这就会报错.
if(obj==Null||obj==DBNull.value)
{
column1="";
}
else
{
column1=obj;
}你试过么?
因为当查询结果不存在时,在cmd.ExecuteScalar()这就会报错.
--那你能明白我楼上的同志的写法么,
column1=cmd.ExecuteScalar()+"";
这样写的效果和我楼上是完全一样的
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=.;uid=sa";
conn.Open();
SqlCommand cmd = new SqlCommand("select 1 where 1=2", conn);
string a = cmd.ExecuteScalar() + "";
MessageBox.Show(a);
}
当查询结果不存在时,cmd.ExecuteScalar()得到的应该是null值吧.
把查询到的UniqueIdentifier 类型的字段的值作为新插入的记录的值,如果此字段为空,就会报错,说需要该字段的参数值,但没有提供该参数值.