标签: sqldatareader

SQL数据读取器 - 处理空列值

我正在使用SQLdatareader从数据库构建POCO.代码工作,除非它在数据库中遇到空值.例如,如果数据库中的FirstName列包含空值,则抛出异常.

employee.FirstName = sqlreader.GetString(indexFirstName);
Run Code Online (Sandbox Code Playgroud)

在这种情况下处理空值的最佳方法是什么?

c# sqldatareader

276
推荐指数
13
解决办法
35万
查看次数

你能从SqlDataReader获取列名吗?

连接到数据库后,我可以获取在我的所有列中返回的列的名称SqlDataReader吗?

c# ado.net sqldatareader

265
推荐指数
7
解决办法
21万
查看次数

检查SqlDataReader对象中的列名称

如何检查SqlDataReader对象中是否存在列?在我的数据访问层中,我创建了一个方法,为多个存储过程调用构建相同的对象.其中一个存储过程具有另一个列,其他存储过程不使用该列.我想修改方法以适应每个场景.

我的应用程序是用C#编写的.

.net c# sqldatareader

204
推荐指数
10
解决办法
14万
查看次数

从SqlDataReader读取数据

我有一个SQL Server 2008数据库,我正在后端工作.我正在研究asp.net/C#

SqlDataReader rdr = cmd.ExecuteReader();  
while (rdr.Read())  
{              
   //how do I read strings here????  
}  
Run Code Online (Sandbox Code Playgroud)

我知道读者有价值观.我的SQL命令是从表中只选择1列.该列仅包含字符串.我想逐一阅读阅读器中的字符串(行).我该怎么做呢?

c# asp.net sqldatareader sql-server-2008

148
推荐指数
11
解决办法
45万
查看次数

如何在C#中使用SqlDataReader获取行数

我的问题是如何SqlDataReader在C#中获取查询返回的行数.我已经看到了一些关于此的答案,但没有明确定义,除了一个声明用Read()方法做一个while循环并增加一个计数器.

我的问题是我试图填充一个多维数组,第一行是列标题名称,后面的每一行都是行数据.

我知道我可以将这些东西转储到List控件中而不用担心它,但是对于我自己的个人启发,我还想在我选择的时候将数据拉入和拉出阵列,并以不同的格式显示它.

所以我认为我不能这样做Read()然后增加++方式,因为这意味着我必须打开Read()然后Read()再次打开以获得行数然后列数据.

只是我正在谈论的一个小例子:

int counter = 0;    

while (sqlRead.Read())
{
    //get rows
    counter++
}
Run Code Online (Sandbox Code Playgroud)

然后一个for循环运行列和弹出

something.Read();

int dbFields = sqlRead.FieldCount;

for (int i = 0; i < dbFields; i++)
{
   // do stuff to array
}
Run Code Online (Sandbox Code Playgroud)

c# sqldatareader

93
推荐指数
5
解决办法
26万
查看次数

如何检查datareader是空还是空

我有一个datareader从sql server数据库返回一个lsit记录.我在数据库中有一个名为"Additional"的字段.此字段为空或空的50%.

我正在尝试编写检查此字段是否为空的代码.这背后的逻辑是:如果字段"附加"包含文本,则显示信息,否则隐藏字段.

我试过了:

if (myReader["Additional"] != null)
{
    ltlAdditional.Text = "contains data";
}
else
{
     ltlAdditional.Text = "is null";
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我这个错误:

异常详细信息:System.IndexOutOfRangeException:Additional

任何帮助将不胜感激...


也可以看看:

检查SqlDataReader对象中的列名称

c# null sqldatareader

48
推荐指数
5
解决办法
17万
查看次数

DataReader中的Multiples表

我通常使用,DataSet因为它非常灵活.最近我被分配了代码优化任务,为了减少对数据库的命中,我在一个程序中更改了两个查询.一个Query返回count,另一个返回actual data.也就是说,My stored procedure返回两个表.现在,我知道如何使用读取两个表DataSets,但我需要使用读取两个表DataReader.寻找我发现了这个.

我按照文章编写了这样的代码:

dr = cmd.ExecuteReader();
while (dr.Read())
{


}
if (dr.NextResult()) // this line throws exception
{
   while (dr.Read())
{
Run Code Online (Sandbox Code Playgroud)

但是我在dt.NextResult上得到了一个例外.例外情况是:

Invalid attempt to call NextResult when reader is closed.
Run Code Online (Sandbox Code Playgroud)

我也试图谷歌上面的错误,但仍然无法解决问题.任何帮助都感激不尽.我需要使用多个表读取datareader,这可能吗?

.net c# asp.net datareader sqldatareader

47
推荐指数
2
解决办法
6万
查看次数

缓冲参数在Dapper dot net中做了什么?

Dapper dot net有一个buffer参数(bool),但据我所知,它唯一能做的就是在返回之前将结果转换为列表.

根据文件:

Dapper的默认行为是执行你的sql并在返回时缓冲整个读者.在大多数情况下,这是理想的,因为它最大限度地减少了数据库中的共享锁,并减少了数据库网络时间.

但是,在执行大量查询时,您可能需要最小化内存占用并仅根据需要加载对象.为此,在Query方法中传递,缓冲:false.

我不确定如何将结果转换为列表来实现此目的.我错过了什么吗?我唯一的想法是它应该设置CommandBehaviorExecuteReaderto CommandBehavior.SequentialAccess(但它没有).

.net sqldatareader dapper

41
推荐指数
2
解决办法
8583
查看次数

有没有比.NET中的SqlDataReader更快的东西?

我需要使用C#将SqlServer上的表中的一列字符串加载到内存中的Array中.有没有比打开SqlDataReader更快的方法并循环它.表很大,时间很关键.

编辑我正在尝试构建.dll并在服务器上使用它来进行数据库上的某些操作.但现在要放慢速度.如果这比我重新设计数据库要快.我很难有可能有一些解决方案如何加快速度.

c# sql sql-server ado.net sqldatareader

40
推荐指数
5
解决办法
4万
查看次数

从SqlDataReader转换为JSON

public string toJSON(SqlDataReader o)
{
    StringBuilder s = new StringBuilder();
    s.Append("[");
    if (o.HasRows)
        while (o.Read())
            s.Append("{" + '"' + "Id" + '"' + ":" + o["Id"] + ", "
            + '"' + "CN" + '"' + ":" + o["CatName"] + ", "
            + '"' + "Ord" + '"' + ":" + o["Ord"] + ","
            + '"' + "Icon" + '"' + ":" + o["Icon"] + "}, ");
    s.Remove(s.Length - 2, 2);
    s.Append("]");
    o.Close();
    return s.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我在这里使用我自己的函数进行序列化.我需要知道这是一个好方法还是我应该使用另一个.顺便说一下,我试过使用JavaScriptSerializer但是这不适用于SqlDataReader.感谢名单

c# json sqldatareader

31
推荐指数
8
解决办法
6万
查看次数