ado.net,怎么把我刚刚插入的行返回????我的代码如下:

khler 2007-05-21 01:35:31
OleDbConnection cn = IConnection.Open();

string sql = "insert into tbUser([Name],[NickName],[Password],[Sex]) values(";
sql += "'"+ user.Name + "','" + user.NickName + "','" + user.Password + "'," + user.Sex + ")";
OleDbCommand cmd = new OleDbCommand(sql, cn);

cmd.ExecuteNonQuery();

User u = cmd.ExecuteScalar() as User;

if (u == null)
{
return -1;
}
else
{
return u.Id;
}
但是User u = cmd.ExecuteScalar() as User;没有返回任何东西。
需要关闭后重新打开吗?
...全文
333 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunzhong2003 2007-07-07
  • 打赏
  • 举报
回复
这个帖子已经不少,楼主搜搜,很多都已经解决.
minhua1983 2007-07-07
  • 打赏
  • 举报
回复
ExecuteScalar()返回第一行第一列内容~~~
ExecuteNonQuery()执行insert,update,delete语句,并返回被执行的记录的行数~~~
loverdotnet 2007-07-07
  • 打赏
  • 举报
回复
string sql="insert into tbuser(([Name],[NickName],[Password],[Sex]) values(user.name,user.nickname,userpassword,user.sex);select @@IDENTITY as 'identity'"
zdyguilong 2007-05-21
  • 打赏
  • 举报
回复
to keystudio(抽刀断水)
------
怎么获取这个返回 的值呢
zdyguilong 2007-05-21
  • 打赏
  • 举报
回复
我也想知道
keystudio 2007-05-21
  • 打赏
  • 举报
回复
string sql = "insert into tbUser([Name],[NickName],[Password],[Sex]) values(";
sql += "'"+ user.Name + "','" + user.NickName + "','" + user.Password + "'," + user.Sex + ")";

sql+=";select @@identity";
如果是SQL的话这样可以
khler 2007-05-21
  • 打赏
  • 举报
回复
我是想注册如果成功就返回他的ID号,如果失败返回-1
xuyiazl 2007-05-21
  • 打赏
  • 举报
回复
呵呵~

估计你是想得到返回结果 对用户进行提示成功或者失败~~

但只是估计` 并不知道你想要干什么
khler 2007-05-21
  • 打赏
  • 举报
回复
。。。。。。


另外做了个函数,问题解决,散分,

show一下,望各位高人指点一下不合理的地方:
public int GetId(string name)
{
try
{
OleDbConnection cn = IConnection.Open();

string sql = "select * from tbUser where ";
sql += "[Name] = '" + name + "'";
OleDbCommand cmd = new OleDbCommand(sql, cn);

object obj = cmd.ExecuteScalar();
if (obj == null)
{
return -1;
}

int uid = (int)obj;

if (uid>0)
{
return uid;
}
else
{
return -1;
}

}
catch (Exception e)
{
PublicVariables.Logger.Error(e.Message);
return -1;
}
finally
{
IConnection.Close();
}
}
xingyjj 2007-05-21
  • 打赏
  • 举报
回复
返回到哪里
说都说不清楚啊
哈哈
干什么用的
你说的含糊
khler 2007-05-21
  • 打赏
  • 举报
回复
呵呵,刚接触C#,很多东西都不明白,
User u = cmd.ExecuteScalar() as User这句话在civyliu的提示下已经改了。
  • 打赏
  • 举报
回复
三人行,....?这句在csdn上要苛刻100倍都不行。

“User u = cmd.ExecuteScalar() as User;”这句能说说你的根据吗?

你写程序要从根据出发,不会就问。创意应该是小心谨慎的,才是真的创意。
khler 2007-05-21
  • 打赏
  • 举报
回复
to keystudio(抽刀断水):
能详细说一下怎么做吗?
keystudio 2007-05-21
  • 打赏
  • 举报
回复
SQL 可以@@identity
khler 2007-05-21
  • 打赏
  • 举报
回复
对,返回新插入的用户的ID
vagrant1124 2007-05-21
  • 打赏
  • 举报
回复
你想返回的是什么值?
是插入结果吗?
khler 2007-05-21
  • 打赏
  • 举报
回复
没有,第一次用asp.net @_@
怪我看文档不仔细,我再去看看
civyliu 2007-05-21
  • 打赏
  • 举报
回复
executescalar传说中返回第一行第一列。insert成功后返回的貌似不是你插入的对象啊。
你以前这样做过吗?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧