如何检查SqlDataReader对象中是否存在列?在我的数据访问层中,我创建了一个方法,为多个存储过程调用构建相同的对象.其中一个存储过程具有另一个列,其他存储过程不使用该列.我想修改方法以适应每个场景.
我的应用程序是用C#编写的.
我有一个数据DataReader,我希望将其转换为List<T>.对此有什么简单的解决方案?
例如,在CustomerEntity类中,我有CustomerId和CustomerName属性.如果我的DataReader将这两列作为数据返回,那么我该如何将其转换为List<CustomerEntity>.
我正在从SqlDataReader生成一个csv文件,但是它没有写出列名,我怎么能让它写出来?我正在使用的代码如下:
SqlConnection conn = new SqlConnection(myconn);
SqlCommand cmd = new SqlCommand("dbo.test", conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
StreamWriter sw = new StreamWriter(myfilePath + "testfile.csv");
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
string value = reader[i].ToString();
if (value.Contains(","))
value = "\"" + value + "\"";
sb.Append(value.Replace(Environment.NewLine, " ") + ",");
}
sb.Length--; // Remove the last comma
sb.AppendLine();
}
conn.Close();
sw.Write(sb.ToString());
sw.Close();
Run Code Online (Sandbox Code Playgroud) 我有一个View,通常从WebMatrix查询(IEnumerable<dynamic>数据类型)获取查询结果,并在表中显示结果:
@model MySite.Models.Entity
@foreach(var row in Model.Data)
{
<tr>
@foreach (var column in row.Columns)
{
<td>@column<span>:</span> @row[column]</td>
}
</tr>
}
Run Code Online (Sandbox Code Playgroud)
这是我查询数据库的模型:
public class Entity
{
public dynamic Data {get; set; }
public Entity(String table)
{
if (table == "User" || table == "Group)
{
WebMatrix.Data.Database db = new WebMatrix.Data.Database();
db.Open(ConString);
Data = db.Query("SELECT * FROM " + table);
}
else
{
using (OdbcConnection con = ne4w OdbcConnection(ConString))
{
OdbcCommand com = new OdbcCommand("Select * From " + table); …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
var query = "SELECT * FROM Cats";
var conn = new SqlConnection(sqlConnectionString);
conn.Open();
var cmd = new SqlCommand(query);
var reader = cmd.ExecuteReader();
while (reader.Read())
{
var CatName = reader.GetString(0);
var CatDOB = reader.GetDateTime(1);
var CatStatus = reader.GetInt32(2);
}
Run Code Online (Sandbox Code Playgroud)
我想将行拉出到一个匿名类型集合中,我通常使用LINQ进行迭代,但我不确定是否可能由于.Read()每次调用下一行所需的方式.
有没有办法做到这一点?
我正在编写一些工具,当应用任何查询时,它必须检索检索到的数据集的列名.
如果您熟悉phpMyAdmin,您将意识到SQL窗格会执行查询运行的内容并显示列名称的结果.我想知道查询有多难,它总是会产生列名,实际上是场景背后的编程?是这样,它分析查询,然后从中查找表名,然后首先使用查询检索列名,然后检索show columns from table-name数据?
有没有更好的方法?
更新 抱歉信息不完整,我想我必须说我正在使用.NET连接器并使用C#.