使用MS Visual Studio 2012 Express,使用C#.NET 4.0。C#縮短數據表功能
嗨,大家好,我相信這是一個簡單的。
我一直在應老闆的要求衝一個程序,但現在事實證明我有更多的空閒時間。
所以我要通過代碼試圖使其更加緊湊,清洗劑等
我有這一個功能.....
public void RunMonth()
{
//** top 10 listings*********************//
SetTxtBox1(DateTime.Now.ToString() + " ==== END OF MONTH REPORTS starting.........\r\n");
SetTxtBox1(" **************************************************************************************\r\n");
try
{
VRMtableDESC = querys.TopVRM("DESC");
SetTxtBox1(DateTime.Now.ToString() + " ==== VRM Top has been loaded\r\n");
}
catch
{
SetTxtBox1(DateTime.Now.ToString() + " ==== VRM Top has FAILED\r\n");
}
}
「VRMtableDESC」是一個DataTable,約18個數據表中的一個。對於每個數據表,這個try語句運行。
現在,你可以告訴這是目前每個表重複18次。 而不是我想循環到表中,並填寫它們的數據。
有沒有辦法做到這一點?據我所知,我需要對數據表和query.function調用進行某種集合。
到目前爲止,我打了一個空白,所以即時通訊希望有一些即時消息丟失。
由於提前
:::: UPDATE :::: 好了,所以我有這個成立至今....
foreach (DataTable tbl in MyDataSet.Tables)
{
tbl.TableName.Equals(querys.TopVRM(""));
}
equals方法需要在其動態方法選擇太....任何想法?
:: UPDATE(31/10/12)::
嗨再次,即時得到一個錯誤,常見的錯誤「對象不會發送到對象的實例」
它apears在合併中foreach循環。
我調試了我的查詢調用,看起來不錯。
var tables = new SortedDictionary<string, Func<DataTable>>()
{
{"VRMtableDESC", () => querys.TopVRM("DESC")},
{"VRMtableASC", () => querys.BotVRM("ASC")},
{"SpectableDESC",() => querys.TopSpec("DESC")},
{"SpectableASC", () => querys.botSpec("ASC")},
{"ParttableDESC",() => querys.TopPart("DESC")},
{"ParttableASC",() => querys.BotPart("ASC")},
{"MantableDESC", () => querys.TopManual("DESC")},
{"MantableASC", () => querys.BotMan("ASC")}, //why is this first to run?????
{"UsersLockedTbl",() => querys.UserLocked()},
{"NewUsersTbl", () => querys.NewUsers()},
{"VRMtotaltblTOP", () => querys.VRMtotalTOP("")},
{"PARTtotaltblTOP", () => querys.PARTtotalTOP("")},
{"SPECtotaltblTOP", () => querys.SPECtotalTOP("")},
{"MANtotaltblTOP", () => querys.MANtotalTOP("")},
{"VRMtotaltblBOT", () => querys.VRMtotalBOT("")},
{"PARTtotaltblBOT", () => querys.PARTtotalBOT("")},
{"SPECtotaltblBOT", () => querys.SPECtotalBOT("")},
{"MANtotaltblBOT", () => querys.MANtotalBOT("")},
};
foreach(var kvp in tables)
{
try
{
MyDataSet.Tables[kvp.Key].Merge(kvp.Value());//error occurs here
SetTxtBox1(String.Format("{0} ==== {1} has been Loaded\r\n", DateTime.Now.ToString(), kvp.Key));
}catch(Exception e)
{
SetTxtBox1(String.Format("{0} ==== {1} has FAILED\r\n", DateTime.Now.ToString(), kvp.Key));
MessageBox.Show("error:::" + e);
}
}
AutoRunApp();
任何幫助將是偉大的。
更新::
繼承人從 「bunchofquerys」 我的查詢電話類
public DataTable BotMan(string order)
{
SqlConnection conn = new SqlConnection(myConnString32);
SqlCommand vrm = new SqlCommand();
//BindingSource bindme = new BindingSource();
SqlDataAdapter adapt1 = new SqlDataAdapter(vrm);
// DataSet dataSet1 = new DataSet();
DataTable table1 = new DataTable();
try
{
vrm.Connection = conn;
vrm.CommandType = CommandType.StoredProcedure;
if (order.Equals("DESC"))
{
vrm.CommandText = "dbo.TopManual";
}
vrm.CommandText = "dbo.BotManual";
vrm.CommandTimeout = 360;
vrm.Parameters.AddWithValue("@OrderBy", order);
adapt1.Fill(table1);
return table1;
}
catch (Exception e)
{
MessageBox.Show("eeror::zomg::: " + e);
}
return table1;
}
DataTable的自然集合是DataSet。 http://msdn.microsoft.com/en-us/library/aeskbwf7.aspx –
事實上,我有一個數據集,我已經將空白表添加到它。但不知道如何將查詢添加到數據集內的每個表。 – lemunk
目前我有一個foreach(在myDataSet.tables中的數據表tbl),但它的代碼上下文,我需要通過該im im不知道,語法等,以及通過這個im不知道 – lemunk