在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();
但是由于我可能有很多值,所以它只返回一个值。那么我该怎么办呢?
谢谢。
答案 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"];