在C#中如何把数据库中某个字段的值修改为NULL?

时间:2020-11-26 15:15:24
在C#中如何把数据库中某个字段的值修改为NULL?
update Users set Star=null where Id=10000

这样为啥出错?

怎么写才可以?

16 个解决方案

#1


我执行可以的,在SQL下没问题哇。
不知道PL/SQL怎么样

#2


单纯在数据库中执行时可以的。

我问的是如何在C#中用ADO.NET操作数据库时更改数据表中的某个字段为NULL。

这样写SQL语句update Users set Star=null where Id=10000 执行命令式是不成功的。

那么应该怎么写?

请高手来指教。。

谢谢


#3


这个语句是对的,查询分析器运行,看看是什么错误.

#4


sql中有null这个关键字吗,这是C#中的!

#5


在拼写sql语句时,update Users set Star=“null” where Id=10000 

#6


update Users set Star=null where Id=10000 在C#里我没看出有什么问题。
执行命令式是不成功的是你C#执行数据库操作的问题,和这句没什么关系。

#7


各位在回答问题的时候有没有亲身试验过?
我知道在sql server的查询分析器里写update Users set Star=null where Id=10000 是正确的,没有错误。
我说的是:用ADO.NET操作数据库修改字段为空(NULL)
sql="update Users set Star=null where Id=10000";
DBhelper.connection.open();
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection);
int result=comm.ExecuteNonQuery();
执行后result=0
也就是说数据库中的值没有改变
怎么解决?
有高人指点吗?



#8


该回复于2011-01-08 13:08:31被版主删除

#9


当然错了,若给数据库字段指定为null
应该使用DBnull.Value 
接分了

#10


接分....

#11


引用 9 楼 java_and_net 的回复:
当然错了,若给数据库字段指定为null
应该使用DBnull.Value
接分了


各位在回答问题的时候有没有亲身试验过? 
我知道在sql server的查询分析器里写update Users set Star=null where Id=10000 是正确的,没有错误。 
我说的是:用ADO.NET操作数据库修改字段为空(NULL) 
sql="update Users set Star=null where Id=10000"; 
DBhelper.connection.open(); 
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection); 
int result=comm.ExecuteNonQuery(); 
执行后result=0 
也就是说数据库中的值没有改变 
怎么解决? 
有高人指点吗? 

#12



拜托老大这么写:
sql="update Users set Star=@Star where Id=10000"; 
SqlParameter[] paras = new SqlParameter[]
{
   new SqlParameter("@Star",类型,长度),
}
paras[0].value = DBNull.Value;
DBhelper.connection.open(); 
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection); 
comm.Parameters.AddRange(paras);
int result=comm.ExecuteNonQuery(); 
我已经用N年!

#13


updata Users from (表名) set Star=“” where Id=10000 
   其中start字段给个空的字符串就可以了

#14


sql="update Users set Star=null where Id=10000"; 
我没试
你试试吧 在SQL不用有双引 
这么写
sql="update Users set Star=‘null’ where Id=10000"; 

#15


引用 14 楼 kkkkkkmn 的回复:
sql="update Users set Star=null where Id=10000";
我没试
你试试吧 在SQL不用有双引
这么写
sql="update Users set Star=‘null’ where Id=10000";
 我这个方法有问题 这里的null成了字符串了 
SORRY  lZ

#16


引用 12 楼 java_and_net 的回复:
拜托老大这么写:
sql="update Users set Star=@Star where Id=10000";
SqlParameter[] paras = new SqlParameter[]
{
  new SqlParameter("@Star",类型,长度),
}
paras[0].value = DBNull.Value;DBhelper.connection.open();
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection);
comm.Parameters.AddRange(paras);
int result=comm.ExecuteNonQuery();
我已经用N年!

对吧

#1


我执行可以的,在SQL下没问题哇。
不知道PL/SQL怎么样

#2


单纯在数据库中执行时可以的。

我问的是如何在C#中用ADO.NET操作数据库时更改数据表中的某个字段为NULL。

这样写SQL语句update Users set Star=null where Id=10000 执行命令式是不成功的。

那么应该怎么写?

请高手来指教。。

谢谢


#3


这个语句是对的,查询分析器运行,看看是什么错误.

#4


sql中有null这个关键字吗,这是C#中的!

#5


在拼写sql语句时,update Users set Star=“null” where Id=10000 

#6


update Users set Star=null where Id=10000 在C#里我没看出有什么问题。
执行命令式是不成功的是你C#执行数据库操作的问题,和这句没什么关系。

#7


各位在回答问题的时候有没有亲身试验过?
我知道在sql server的查询分析器里写update Users set Star=null where Id=10000 是正确的,没有错误。
我说的是:用ADO.NET操作数据库修改字段为空(NULL)
sql="update Users set Star=null where Id=10000";
DBhelper.connection.open();
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection);
int result=comm.ExecuteNonQuery();
执行后result=0
也就是说数据库中的值没有改变
怎么解决?
有高人指点吗?



#8


该回复于2011-01-08 13:08:31被版主删除

#9


当然错了,若给数据库字段指定为null
应该使用DBnull.Value 
接分了

#10


接分....

#11


引用 9 楼 java_and_net 的回复:
当然错了,若给数据库字段指定为null
应该使用DBnull.Value
接分了


各位在回答问题的时候有没有亲身试验过? 
我知道在sql server的查询分析器里写update Users set Star=null where Id=10000 是正确的,没有错误。 
我说的是:用ADO.NET操作数据库修改字段为空(NULL) 
sql="update Users set Star=null where Id=10000"; 
DBhelper.connection.open(); 
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection); 
int result=comm.ExecuteNonQuery(); 
执行后result=0 
也就是说数据库中的值没有改变 
怎么解决? 
有高人指点吗? 

#12



拜托老大这么写:
sql="update Users set Star=@Star where Id=10000"; 
SqlParameter[] paras = new SqlParameter[]
{
   new SqlParameter("@Star",类型,长度),
}
paras[0].value = DBNull.Value;
DBhelper.connection.open(); 
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection); 
comm.Parameters.AddRange(paras);
int result=comm.ExecuteNonQuery(); 
我已经用N年!

#13


updata Users from (表名) set Star=“” where Id=10000 
   其中start字段给个空的字符串就可以了

#14


sql="update Users set Star=null where Id=10000"; 
我没试
你试试吧 在SQL不用有双引 
这么写
sql="update Users set Star=‘null’ where Id=10000"; 

#15


引用 14 楼 kkkkkkmn 的回复:
sql="update Users set Star=null where Id=10000";
我没试
你试试吧 在SQL不用有双引
这么写
sql="update Users set Star=‘null’ where Id=10000";
 我这个方法有问题 这里的null成了字符串了 
SORRY  lZ

#16


引用 12 楼 java_and_net 的回复:
拜托老大这么写:
sql="update Users set Star=@Star where Id=10000";
SqlParameter[] paras = new SqlParameter[]
{
  new SqlParameter("@Star",类型,长度),
}
paras[0].value = DBNull.Value;DBhelper.connection.open();
Sqlcommand comm=new sqlcommand(sql,DBHelper.connection);
comm.Parameters.AddRange(paras);
int result=comm.ExecuteNonQuery();
我已经用N年!

对吧