1

我正在实现连接,我为Connect和实现了方法Insert。这些方法正在奏效。但是我有问题如何实现getdata()方法(从数据库中获取数据)。在我向方法发送查询后,我需要知道如何使用SqlDataReader.

public String GetData(string _query)
{
     try
     {
         SqlCommand cmd = new SqlCommand(_query, this.dbCon);
         results = cmd.ExecuteReader().ToString();
         return results;
     }
     catch (Exception)
     {
         return "Error";
     }
}

我想完成这个get方法,我使用的是SQL Server和C#

4

4 回答 4

1

不要重新发明轮子。对于大多数情况,类型化数据集和 EF 无疑是在 .NET 中检索和操作数据的最佳方法。MS 已经以比您可能无法实现的更好的方式编写了您尝试编写的所有内容。你花在学习这两种技术上的时间会给你带来持久的好处。这对您来说更是如此,因为您将它用于 SQL Server。

于 2013-06-25T07:54:37.650 回答
0

尝试这样的事情:

private void TestMethod(string sqlCmd, List<string> myColumns)
{
    try
    {
        SqlDataReader myReader = null;
        SqlCommand    myCommand = new SqlCommand(sqlCmd, myConnection);
        myReader = myCommand.ExecuteReader();
        while(myReader.Read())
        {
            foreach (var col in myColumns)
            {   
               Console.WriteLine(myReader[col].ToString());                   
            }
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e.ToString());
    }
}

另外你可以看看这篇文章

于 2013-06-25T07:47:01.853 回答
0

这是一个相当简单的示例,您可以查看:

public SqlDataReader ExecuteReader(SqlCommand cmd)
        {
            return cmd.ExecuteReader();
        }

使用这种方法,我可以执行以下操作:

var reader = ExecuteReader(new SqlCommand("SELECT ColumnA, ColumnB FROM Table"));

string ColA = string.empty;
string ColB = string.empty;

while (reader.Read())
       ColA = reader["ColumnA"].ToString();
       ColB = reader["ColumnB"].ToString();

reader.Close();
reader.Dispose();
于 2013-06-25T07:49:42.180 回答
0

编写一个方法来获取数据读取器,如下所示,

private SqlDataReader TestMethod(string sqlCmd, List<string> myColumns)
{
 try{
     SqlDataReader myReader = null;
     SqlCommand    myCommand = new SqlCommand(sqlCmd, myConnection);
     myReader = myCommand.ExecuteReader();
     return myReader;
   }
   catch (Exception e)
   {
     Console.WriteLine(e.ToString());
   }
}

然后将其用作,

SqlDataReader myReader  = TestMethod("your query",youtcolumnlist)
while(myReader.Read())
{

   foreach (var col in myColumns)
   {   
       Console.WriteLine(myReader[col].ToString());                   
   }
}
于 2013-06-25T08:50:40.797 回答