首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecuteScalar返回错误值

ExecuteScalar返回错误值
EN

Stack Overflow用户
提问于 2015-09-28 11:41:17
回答 1查看 507关注 0票数 0

我在从数据库中选择最大ID时遇到了一些小问题。这是我的密码:

代码语言:javascript
复制
string checkcat = "SELECT MAX(PRODUCT_ID) FROM CMS_PRODUKTY WHERE (CATEGORY_ID = CATEGORY_ID) AND (CLIENT_ID = @CLIENT_ID)";
SqlCommand cmd2 = new SqlCommand(checkcat, con);
cmd2.Parameters.Add("@CATEGORY_ID", System.Data.SqlDbType.Int).Value = kategoria;
cmd2.Parameters.Add("@CLIENT_ID", System.Data.SqlDbType.Int).Value = HiddenField1.Value;
con.Open();
int noweid = Convert.ToInt32(cmd2.ExecuteScalar());
con.Close();

重点是新的int "noweid“应该是1或更高-依赖于表中的product_id,但是它返回0。我不知道为什么..。其他变量- kategoria和HiddenField1. other是正确的。

知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 11:44:15

你有

代码语言:javascript
复制
WHERE (CATEGORY_ID = CATEGORY_ID)

但你想

代码语言:javascript
复制
WHERE (CATEGORY_ID = @CATEGORY_ID)

您还应该将字符串解析为int

代码语言:javascript
复制
cmd2.Parameters.Add("@CLIENT_ID", System.Data.SqlDbType.Int).Value = int.Parse(HiddenField1.Value);

也许kategoria也是string,然后将其解析为int

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32822126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档