C#在一行中获得很多行

时间:2019-07-08 09:33:01

标签: c# sql-server

在C#中,我当前正在从SQL中获取一些数据,由于我的选择(请参见下面的代码),我的查询仅返回我一列(在下面的代码中),但是在某些情况下,我可能有多于一行,所以我想知道是否有办法只在一行文本中返回这些行?

这是我当前的代码:

  public bool getDBValue(string m_strValue, string m_strFilter, string m_strDBTable, out DataSet m_objDs, out string m_strError)

 try
 {
    using (SqlConnection oConn = new SqlConnection(getConnectionString()))
    {
       oConn.Open();
       SqlDataAdapter l_objAdapter = new SqlDataAdapter("Select [" + m_strValue + "] FROM "+ m_strDBTable+" Where ProjectUID =" + "'" + m_strFilter + "'", oConn);
       m_objDs = new DataSet();
       l_objAdapter.Fill(m_objDs);
    }
    return (true);
 }
 catch (Exception e)
 {
    m_strError = e.Message;
    return (false);
 }

因为此刻,我将我的数据与line一起使用:

string value = l_objDs.Tables[0].Rows[0]["ColumnName"].ToString();

但是由于我可能有很多值,所以它只返回一个值。那么我该怎么办呢?

谢谢。

2 个答案:

答案 0 :(得分:2)

否,这是不可能的,因为您在Table [0]的Row [0]取值,因此您将获得第一个Table的第一行的值。

字符串值= l_objDs.Tables [0] .Rows [0] [“ ColumnName”]。ToString();

我宁愿建议您遍历表行并将其添加到StringBuilder,然后将其分配给字符串值。

类似下面的内容。

StringBuilder sb = new StringBuilder();
foreach (DataRow dr in l_objDs.Tables[0].Rows)
        {
            sb.Append(dr["ColumnName"]);
        }
 string value= sb.ToString();

希望这会有所帮助!

答案 1 :(得分:1)

只需使用foreach遍历所有行:

string value = "";
foreach (DataRow row in m_objDs.Tables[0].Rows)
  value += row["ColumnName"];