我有一个从SQL查询填充到本地数据库的DataTable
,但我不知道如何从中提取数据。Main方法(测试程序中):
static void Main(string[] args)
{
const string connectionString = "server=localhost\\SQLExpress;database=master;integrated Security=SSPI;";
DataTable table = new DataTable("allPrograms");
using (var conn = new SqlConnection(connectionString))
{
Console.WriteLine("connection created successfuly");
string command = "SELECT * FROM Programs";
using (var cmd = new SqlCommand(command, conn))
{
Console.WriteLine("command created successfuly");
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
conn.Open();
Console.WriteLine("connection opened successfuly");
adapt.Fill(table);
conn.Close();
Console.WriteLine("connection closed successfuly");
}
}
Console.Read();
}
我用来在数据库中创建表的命令:
create table programs
(
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
如何将DataTable
中的数据提取到有意义的表单中?
发布于 2009-08-28 10:22:24
DataTable有一个DataRow元素的集合.Rows
。
每个DataRow对应于数据库中的一行,并包含一个列集合。
要访问单个值,请执行以下操作:
foreach(DataRow row in YourDataTable.Rows)
{
string name = row["name"].ToString();
string description = row["description"].ToString();
string icoFileName = row["iconFile"].ToString();
string installScript = row["installScript"].ToString();
}
发布于 2009-08-28 10:21:57
您可以将datatable设置为许多元素的数据源。
例如
gridView
中继器
数据列表
等等等等
如果需要从每一行提取数据,则可以使用
table.rows[rowindex][columnindex]
或
如果您知道列名
table.rows[rowindex][columnname]
如果需要迭代表,则可以使用for循环或foreach循环,如下所示
for ( int i = 0; i < table.rows.length; i ++ )
{
string name = table.rows[i]["columnname"].ToString();
}
foreach ( DataRow dr in table.Rows )
{
string name = dr["columnname"].ToString();
}
发布于 2014-03-27 19:10:44
请考虑使用如下代码:
SqlDataReader reader = command.ExecuteReader();
int numRows = 0;
DataTable dt = new DataTable();
dt.Load(reader);
numRows = dt.Rows.Count;
string attended_type = "";
for (int index = 0; index < numRows; index++)
{
attended_type = dt.Rows[indice2]["columnname"].ToString();
}
reader.Close();
https://stackoverflow.com/questions/1346132
复制相似问题