Tag: sqldatareader

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

我需要从SqlServer的表中将一列string加载到内存中使用C#的数组中。 有没有比打开SqlDataReader更快的方式,并通过它循环。 表格很大,时间很关键。 编辑我想构build.dll,并在服务器上使用它在数据库上的一些操作。 但现在是放缓了。 如果这是最快的,我必须重新devise数据库。 我强硬可能有一些解决scheme如何加快事情。

DataReader中的倍数表

我通常使用DataSet因为它非常灵活。 最近我被分配了代码优化任务,为了减less命中数据库,我正在改变一个程序中的两个查询。 一个查询返回count ,另一个返回actual data 。 也就是说,我的stored procedure返回两个表。 现在,我知道如何使用DataSets读取两个表,但是我需要使用DataReader读取两个表。 在寻找我发现这个 。 我按照这篇文章写这样的代码: dr = cmd.ExecuteReader(); while (dr.Read()) { } if (dr.NextResult()) // this line throws exception { while (dr.Read()) { 但是我在dt.NextResult得到一个exception。 例外是: Invalid attempt to call NextResult when reader is closed. 我也试图去Google上面的错误,但还是无法解决问题。 任何帮助都感激不尽。 我需要使用datareader读取多个表,这可能吗?

如何检查datareader是否为空或空

我有一个datareader从sql server数据库返回一个logging。 我在数据库中有一个名为“Additional”的字段。 这个字段是50%的空或空。 我正在尝试编写检查此字段是否为空的代码。 这背后的逻辑是:如果“附加”字段包含文本,则显示信息,否则隐藏字段。 我努力了: if (myReader["Additional"] != null) { ltlAdditional.Text = "contains data"; } else { ltlAdditional.Text = "is null"; } 上面的代码给了我这个错误: exception详细信息: System.IndexOutOfRangeException:其他 任何帮助将不胜感激… 也可以看看: 检查SqlDataReader对象中的列名称

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

我的问题是如何获取在C#中使用SqlDataReader查询返回的行数。 我已经看到了一些关于这个问题的答案,但没有一个被清楚地定义,除了一个声明用Read()方法做一个while循环并增加一个计数器。 我的问题是,我正在尝试填充一个multidimensional array,第一行是列标题名称,然后每行都是行数据。 我知道我可以将这些东西转储到List控件中,而不用担心,但是对于我自己的个人启发,我还想根据需要将数据从数组中取出并以不同的格式显示出来。 所以我认为我不能执行Read()然后递增++方式,因为这意味着我将不得不打开Read() ,然后再次打开Read()以获得大量行数,然后再获取列数据。 只是我正在谈论的一个小例子: int counter = 0; while (sqlRead.Read()) { //get rows counter++ } 然后一个for循环遍历列和stream行 something.Read(); int dbFields = sqlRead.FieldCount; for (int i = 0; i < dbFields; i++) { // do stuff to array }

你能从SqlDataReader获得列名吗?

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

从SqlDataReader读取数据

我有一个SQL Server 2008数据库,我在后端工作。 我正在研究asp.net/C# SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { //how do I read strings here???? } 我知道读者有价值。 我的SQL命令是从表中select一列。 该列只包含string。 我想逐一阅读阅读器中的string(行)。 我如何做到这一点?

检查SqlDataReader对象中的列名称

如何检查SqlDataReader对象中是否存在列? 在我的数据访问层中,我创build了一个为多个存储过程调用构build相同对象的方法。 其中一个存储过程具有其他存储过程不使用的附加列。 我想修改方法来适应每种情况。 我的应用程序是用C#编写的。

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

我正在使用SQLdatareader从数据库中build立POCO。 代码工作,除非在数据库中遇到空值。 例如,如果数据库中的FirstName列包含空值,则会引发exception。 employee.FirstName = sqlreader.GetString(indexFirstName); 在这种情况下处理空值的最好方法是什么?