C#中对象不能从DBnull转换为其他类型

回答好了继续加20分... 回答好了继续加20分 展开
 我来答
重典技术闲话
推荐于2018-03-13 · TA获得超过2173个赞
知道大有可为答主
回答量:2593
采纳率:0%
帮助的人:1131万
展开全部
从数据库里读数据,如果类型可空,要先判空,特别是int/datetime
string time;
if(!dataRow.IsNull("addTime")){
time=dataRow.Field<DateTime>("addTime");

}

如果是写入,不能写入null要写入DBNull

string name;
if(name==null)
cmd.AddParameter("name",DBNull.Value);
else
cmd.AddParameter("name",name)
蓟意畅乐天
2019-08-15 · TA获得超过3743个赞
知道大有可为答主
回答量:3159
采纳率:28%
帮助的人:205万
展开全部
select
max(themeNum)
from
Forumtheme
执行的结果是
NULL
也就是
要么
Forumtheme
一条记录也没有
要么
Forumtheme
表里面
themeNum
的数据都是
NULL
int
count
=
Convert.ToInt32(cmd.ExecuteScalar());
//提示出错
count++;
修改为:
int
count
=
0;
Object
tmpVal
=
cmd.ExecuteScalar()
if(
tmpVal
!=
DBNull
)
count
=
Convert.ToInt32(
tmpVal
);
)
count++;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2010-06-28 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3776万
展开全部
楼上正解
鉴定完毕,数据库的null要用DBNULL.Value
而不是C#的null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
错骞位博敏
2020-02-19 · TA获得超过3656个赞
知道大有可为答主
回答量:3128
采纳率:26%
帮助的人:204万
展开全部
SqlConnection
con
=
DB.CreateConnectionForum();
con.Open();
SqlCommand
cmd
=
new
SqlCommand("select
max(themeNum)
from
Forumtheme",
con);
int
count
=
0;
object
c
=
cmd.ExecuteScalar()
;
if(c
!=
null)
count
=
Convert.ToInt32(c);
count++;
con.Close();
.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世代荣昌乐太平
推荐于2016-07-04 · TA获得超过4.4万个赞
知道大有可为答主
回答量:2万
采纳率:75%
帮助的人:1256万
展开全部
{
byte[] EDS = new byte[183];
EDS[0] = 0x82; // emm table id
EDS[1] = 0x40; //
EDS[2] = 0x3f;
EDS[3] = 0x02;// emm secton length
byte[] groupid = HexStrToHexBytes(dr["Group_name"].ToString());
EDS[4] = groupid[0];
EDS[5] = groupid[1];
// emm secton length
//发送emm

string strConn = "Data Source=127.0.0.1;Initial Catalog=yz;User ID=sa;Password=sa123456";
SqlConnection ConnAcc = new SqlConnection(strConn);
string strSQL = "SELECT SGK FROM Group_SGK3 ";
SqlDataAdapter de = new SqlDataAdapter(strSQL, ConnMdb);
try
{
//da.Fill(dt);
dtData.Clear();
de.Fill(dtData);
}
catch
{
break;
}

for (int n = 0; n < 7; n++)
{
int GK;
foreach (DataRow rdr in dtData.Rows)
{

int SGK = Convert.ToInt32(rdr["SGK"]);
GK = SGK << n;

if (Convert.ToBoolean(rdr["state1"]))
{

byte[] gk = new byte[8];
Array.Copy(HexStrToHexBytes(GK.ToString()), 0, gk, 7, 1);

;
SKeyValue = SKeyValue1;
byte[] EncryptSk = EncryptDES(SKeyValue, gk);

EDS[6] = 0x01;
Array.Copy(EncryptSk, 0, EDS, 7, EncryptSk.Length);
//Thread.Sleep(5);
}
else
{

EDS[6] = 0x01;

EDS[7] = 0xff;
EDS[8] = 0xff;
for (int i = 9; i < 15; i++)
{
EDS[i] = 0x00;

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式