sqldatareader

atareader对象提供只读单向数据的快速传递,单向:您只能依次读取下一条数据;只读:DataReader中的数据是只读的,不能修改;相对地,DataSet中的数据可以任意读取和修改.

它有一个很重要的方法,是Read,是个布尔值,作用是前进到下一条数据,一条条的返回数据,当布尔值为真时执行,为假时跳出。如

while(dr.Read())
{
Response.write(dr["UserName"]
}
dr.close();
以下是用户登录判断时候合法用户的代码
SqlConnection con = DB.WebConnection();//通过类调用连接上数据库

con.Open();//打开连接

SqlCommand com = new SqlCommand();
com.CommandText = "Select * from Users where UserName=‘" + tbUserName.Text + "‘";
com.CommandType = CommandType.Text;
com.Connection = con;
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
int UserID = reader.GetInt32(0);
string Password = reader["UserPassword"].ToString();
string Password0 = tbUserPassword.Text;
if (Password == Password0)
{
Session["uid"] = UserID;
Session["name"] =tbUserName.Text;
Response.Redirect("index.aspx");
}
else
{
Response.Redirect("login.aspx");
}
}
else
{
Response.Redirect("login.aspx");
}

用这种方法不仅能判断用户名是否合法,还可以很方便地获取更多关于该用户的信息,其中,我比较喜欢用的是string Password = reader["UserPassword"].ToString();这种方法,但是这种方法似乎不能获取int类型的字段数据,比如这里的UserId,只能用int UserID = reader.GetInt32(0);这种方法获取它的值。不知道用字段名有没有方法获取到UserId的值。

时间: 2024-10-14 02:49:37

sqldatareader的相关文章

SqlDataReader 会将case...when 查询的数据列设置为只读

第一次写博,想分享一下解决的问题... 在处理一个问题时发现,SqlDataReader 在执行有case...when..语句的Sql时都会将该列设置为只读属性 虽然不知道具体的原因是什么,但是感觉很有意思. 如"SELECT TOP 1 CASE sex WHEN 0 THEN '男' ELSE '女' END        AS sex1,sex FROM student " 从学生表里面查询性别列,一个使用case ...when ,一列之间查询,在使用SqlDataReade

SqlDataReader生成动态Lambda表达式

上一扁使用动态lambda表达式来将DataTable转换成实体,比直接用反射快了不少.主要是首行转换的时候动态生成了委托. 后面的转换都是直接调用委托,省去了多次用反射带来的性能损失. 今天在对SqlServer返回的流对象 SqlDataReader 进行处理,也采用动态生成Lambda表达式的方式转换实体. 先上一版代码 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using Syst

获取SqlDataReader的列名

SqlConnection thisConnection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString()); // Open connection thisConnection.Open(); // Create command for this connection SqlCommand thisCommand = thisConnection.CreateComm

vb.net访问sql server数据库(SqlDataReader和DataSet两种方式)

.net访问数据库的三个基本步骤: 一.连接数据库: 要使用sqlclient命名空间中的sqlconnection类: 定义一个sqlconnection对象: Dim sqlCon As New SqlConnection 要进行的设置有: 1.sqlCon .ConnectionString="server=服务器ip;database=数据库名称;integrated security=ture/false(是否有登录账号密码);uid=用户名 (默认:sa);pwd:登录密码"

c#配置问题以及简单防止sql注入,连接池问题,sqldatareader对象对于connection对象的释放

添加引用.system configuration configurationManager.AppSettings[""] <appSetings> <add key="" value=""> </appSetings> <connectionStrings> <add key="" connectionString=""> </conne

DataTable &amp;&amp; SqlDataReader帮助理解小程序

// 2015/07/08 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace DataTapleSample { class Program { static void Main(string[] ar

Ado.net中DataSet和SqlDataReader的区别

概述: 一,SqlDataReader //基于连接,只读访问 适合数据量较小. SqlDataAdapter //基于非连接,适于数据量较大时,可以另行修改,最后再把修改结果返回给数据库.要求资源也大一点 二,SqlDataAdapter 读取数据后将数据集放入DataSet ,DataSet 的数据存在本地客服机内存. 三,SqlDataReader返回的是一个数据读写器,只能一条条的读,操作起来不灵活,一般在只读的时候才用到. SqlDataAdapter返回的是数据集或者表,可以对其中的

利用反射将Datatable、SqlDataReader转换成List模型

1. DataTable转IList 1 public class DataTableToList<T>whereT :new() 2 3 { 4 5 ///<summary> 6 7 ///利用反射将Datatable转换成List模型 8 9 ///</summary> 10 11 ///<param name="dt"></param> 12 13 ///<returns></returns> 1

使用Visual Studio自带数据库配合SqlDataReader 读取数据库数据

连接语句:            string strConn = "";            SqlConnection myConn = new SqlConnection(strConn);            string strSql = "select * from grxx";            SqlCommand myCommand = new SqlCommand(strSql, myConn);            myConn.Op

C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用

主要用在ExecuteReader(c)中,如果想要返回对象前不关闭数据库连接,须要用CommandBehavior.CloseConnection: CloseConnection解决了流读取数据模式下,数据库连接不能有效关闭的情况.当某个XXXDataReader对象在生成时使用了CommandBehavior.CloseConnection,那数据库连接将在XXXDataReader对象关闭时自动关闭. 由于流模式读取数据库的特点,在具体应用时很难确定数据库连接何时才能被关闭,因为读取的动