0
我循環通過一個循環,其想法是,每當它通過循環更多的行被添加到數據表一樣。我明白,通過使用填充方法,情況就是如此。但是在我的代碼中,最後的數據表是最後一個循環的結果。這裏是我的代碼:附加的DataTable使用sqldataAdapter.Fill
調用方法
// declare a new new datatable to hold the results of the query
DataTable dtResults = new DataTable();
foreach (OrgChartNode node in RadOrgChart1.GetAllNodes())
{
Label label1 = (Label)node.GroupItems[0].FindControl("Label1");
foreach (OrgChartRenderedField rf1 in node.GroupItems[0].RenderedFields)
{
if (rf1.Label == "ibl")
{
string[] iblWords = rf1.Text.Split(':');
string iblId = iblWords[0].Trim();
string[,] sqlParam01 =
{
{ "@document_id", iblId },
{ "@class_id", "123" }
};
dtResults = Helper.GetDataTablePrime(SQL_Default.SQL_Report, sqlParam01, dtResults);
}
}
RadGrid2.DataSource = dtResults;
RadGrid2.DataBind();
這裏是GetDataTablePrime方法:
public static DataTable GetDataTablePrime(string query, string[,] sqlParameters, DataTable dtContents)
{
String connString = "Data Source=*********************************";
SqlDataAdapter adapter = new SqlDataAdapter();
using (SqlConnection conn = new SqlConnection(connString))
{
adapter.SelectCommand = new SqlCommand(query, conn);
// loop through adding parameters
for (int i = 0; i <= sqlParameters.GetUpperBound(0); i++)
{
adapter.SelectCommand.Parameters.Add(new SqlParameter(sqlParameters[i, 0], sqlParameters[i, 1]));
}
adapter.Fill(dtContents);
conn.Close();
}
return dtContents;
}
做任何事情看的地方?
如果你看,爲這個「helper」方法準備所有東西的代碼比直接使用DB Provider更復雜,更隱晦和不夠精確。 – Plutonix