请教一个执行SQL语句问题

baidu_38419577 2017-04-22 11:38:08
我想在登陆成功以后生成几个Session

类似于这样的语句:
 Session["user"] = ;


那么问题来了。我如何通过 select * from User_admin where Name=‘XXX’ //Name 唯一
这样的语句来取这个User_admin 里面 ID列 / User列里面的值呢??
我想用sql上面的语句来查询 然后取到 Name列里面的值,然后赋值给Session里面的User

这样我在后面写权限验证时候就可以直接取出来用了

希望得到解答!万分感谢!
...全文
427 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
youyiyang 2017-04-24
  • 打赏
  • 举报
回复
我前面是对楼主说的,可能他对sql的基本操作不熟悉,这个操作百度上很多的,实际做下就知道了。 应该不需要太复杂的SqlParameter吧
flyspirit 2017-04-24
  • 打赏
  • 举报
回复
引用 11 楼 youyiyang 的回复:
[quote=引用 9 楼 baidu_38419577 的回复:] [quote=引用 4 楼 youyiyang 的回复:] 那就: sql = "select user,id from User_admin where Name='" + Session["user"] + "'";
根据您的思路 发现像下面这样写也可以取到ID 但是如果我要取多条就得执行多次,感觉不是很省资源。。。不知道还有没有上面更·省资源的方法 string sql = "select ID from User_admin where Name='admin'";[/quote]
引用 10 楼 flyspirit 的回复:
你这种情况下一般就是要一条一条读的,不应该一下子全读出来。但这条语句不太好,很容易被SQL Injection 建议使用SqlCommand和SqlParameter: 不过现实的编程中都使用某种ORM例如EntityFramework, NHibernate这些了。
你的意思是说Name=‘admin’的时候会有好几个id返回值是吗? 如果是这样的话,那么这个返回值本身就是一个数组,你用循环语句取出赋值给session就可以了。 这样的速度应该是可以的,不必太担心的。[/quote] 不是这个意思,string sql = "select ID from User_admin where Name='admin'";这种写法会有sql注入风险,因为实际是个参数,实际代码会写成 "select ID from User_admin where Name=''“+userName+"'", 而userName一般是用户输入的。如果有人故意输入admin,‘’ delete from User_admin'之类的内容,数据库里面的记录就被全部清除了。 所以一般要用SqlParameter,具体用法百度下,非常多,
youyiyang 2017-04-24
  • 打赏
  • 举报
回复
你具体查下asp.net数据库操作就可以了
youyiyang 2017-04-24
  • 打赏
  • 举报
回复
引用 9 楼 baidu_38419577 的回复:
[quote=引用 4 楼 youyiyang 的回复:] 那就: sql = "select user,id from User_admin where Name='" + Session["user"] + "'";
根据您的思路 发现像下面这样写也可以取到ID 但是如果我要取多条就得执行多次,感觉不是很省资源。。。不知道还有没有上面更·省资源的方法 string sql = "select ID from User_admin where Name='admin'";[/quote]
引用 10 楼 flyspirit 的回复:
你这种情况下一般就是要一条一条读的,不应该一下子全读出来。但这条语句不太好,很容易被SQL Injection 建议使用SqlCommand和SqlParameter: 不过现实的编程中都使用某种ORM例如EntityFramework, NHibernate这些了。
你的意思是说Name=‘admin’的时候会有好几个id返回值是吗? 如果是这样的话,那么这个返回值本身就是一个数组,你用循环语句取出赋值给session就可以了。 这样的速度应该是可以的,不必太担心的。
小贤820 2017-04-24
  • 打赏
  • 举报
回复
string strSQL =string.Format("select [Id],[UserName],[Password] from UserName='{0}'","你需要查询的值"); DataTable dtUser = null;//执行你的SQL得到DataTable Session["user"] = dtUser;//把查询记录都放到session //用下面的方式可以读取你想要的任何值,而且只需要用到一个Session DataTable dt = (DataTable)Session["user"]; dt.Rows[0]["Id"].ToString(); dt.Rows[0]["UserName"].ToString();
「已注销」 2017-04-24
  • 打赏
  • 举报
回复
oracle 有个行转列 wm_concat函数 不知道可能帮助你,取出来之后然后拆分
孤独的海啊 2017-04-24
  • 打赏
  • 举报
回复
引用 8 楼 baidu_38419577 的回复:
[quote=引用 4 楼 youyiyang 的回复:] 那就: sql = "select user,id from User_admin where Name='" + Session["user"] + "'";
您可能理解错我的意思了。。。我的意思是,现在想SQL查出来,然后扔到Session里面 而不是从Session里面取再扔到SQL里面查 例如:我有一个名为 User的表 表里面有三个列 id、UserName、Password 那么我用 select * from User Where id=XXX 那么返回结果必定是 id UserName Password 这个ID所对应的三个值 为现在想把这三个值 分开取出来 存到Session里面的三个不同值里面 例如 Session["ID"] =ID ; Session["user"] =UserName ; 这样我的Session里面就有了两个值,后面就好用了 [/quote] 看到这里我可能懂你的意思了,你是想查询完,把这条记录的三个字段分别赋值到session里面吧。 NET的语法就直接可以取出来这三个字段哇。 你 ExecuteReader 完以后返回一个SqlDataReader对象 你直接取值就OK了。 给你个栗子: using (SqlConnection connection = new SqlConnection(connectionString)) { try { SqlCommand command = new SqlCommand(selectStr, connection); command.Connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) Session["ID"] = reader["ID"].ToString(); //数据读取 Session["UserName "] = reader["UserName "].ToString(); //数据读取 command.Connection.Close(); } catch (SqlException ex) { throw ex; } }
threenewbee 2017-04-23
  • 打赏
  • 举报
回复
sql = "select * from User_admin where Name='" + Session["user"] + "'";
threenewbee 2017-04-23
  • 打赏
  • 举报
回复
字符串拼接就可以了。
flyspirit 2017-04-23
  • 打赏
  • 举报
回复
你这种情况下一般就是要一条一条读的,不应该一下子全读出来。但这条语句不太好,很容易被SQL Injection 建议使用SqlCommand和SqlParameter: 不过现实的编程中都使用某种ORM例如EntityFramework, NHibernate这些了。
baidu_38419577 2017-04-23
  • 打赏
  • 举报
回复
引用 4 楼 youyiyang 的回复:
那就: sql = "select user,id from User_admin where Name='" + Session["user"] + "'";
根据您的思路 发现像下面这样写也可以取到ID 但是如果我要取多条就得执行多次,感觉不是很省资源。。。不知道还有没有上面更·省资源的方法 string sql = "select ID from User_admin where Name='admin'";
baidu_38419577 2017-04-23
  • 打赏
  • 举报
回复
引用 4 楼 youyiyang 的回复:
那就: sql = "select user,id from User_admin where Name='" + Session["user"] + "'";
您可能理解错我的意思了。。。我的意思是,现在想SQL查出来,然后扔到Session里面 而不是从Session里面取再扔到SQL里面查 例如:我有一个名为 User的表 表里面有三个列 id、UserName、Password 那么我用 select * from User Where id=XXX 那么返回结果必定是 id UserName Password 这个ID所对应的三个值 为现在想把这三个值 分开取出来 存到Session里面的三个不同值里面 例如 Session["ID"] =ID ; Session["user"] =UserName ; 这样我的Session里面就有了两个值,后面就好用了
  • 打赏
  • 举报
回复
其实当你说“岂不是把整条数据都放进去了”的时候,一眼就能看出,你不看任何、任何一个基本文档和教程,根本不能相信你能知道如何写代码“把整条数据取出来”,可以说你肯定是不看教程、而盲目利用这个论坛的。 希望你能理解,这个论坛如果能够真正给有一定开发经验的人来用,对你将来的工作,也有好处。
baidu_38419577 2017-04-23
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
其实当你说“岂不是把整条数据都放进去了”的时候,一眼就能看出,你不看任何、任何一个基本文档和教程,根本不能相信你能知道如何写代码“把整条数据取出来”,可以说你肯定是不看教程、而盲目利用这个论坛的。 希望你能理解,这个论坛如果能够真正给有一定开发经验的人来用,对你将来的工作,也有好处。
第一,我是自学,没有培训班, 第二看了教程,但是看的有一点跳,因为有一定的Java 跟C的基础, 第三,这是我在这个论坛发的第二篇帖,不知道两篇能不能算盲目乱用 最后感谢提醒ADO.net 这就回去再看看。
  • 打赏
  • 举报
回复
引用 3 楼 qq_15231387 的回复:
引用 2楼caozhy 的回复:
sql = "select * from User_admin where Name='" + Session["user"] + "'";
如果这样写 岂不是把整条数据都放进去了? 我想把他切割开 user是user id是id 这样后面才好判断呀
学习一下 ado.net 查询数据,读取查询结果。 是不是你们的培训(顶多是培训了)没有真正的教师?请按部就班地正规学习。数据库系统知识、ado,net 的查询数据库(并且读取每一行、每一个字段)的知识,不可囫囵吞枣地学习。更不可像某些搞培训的人宣传的那样,让你们把论坛当作免费写作业的地方。
youyiyang 2017-04-23
  • 打赏
  • 举报
回复
那就: sql = "select user,id from User_admin where Name='" + Session["user"] + "'";
qq_15231387 2017-04-23
  • 打赏
  • 举报
回复
引用 2楼caozhy 的回复:
sql = "select * from User_admin where Name='" + Session["user"] + "'";
如果这样写 岂不是把整条数据都放进去了? 我想把他切割开 user是user id是id 这样后面才好判断呀

62,041

社区成员

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

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

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

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