C# .NET 4.0을 사용하여 MS Visual Studio 2012 Express를 사용합니다.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는"데이터 테이블 등등, 약 18 개의 데이터 테이블 중 하나. 각 데이터 테이블에 대해이 try 문이 실행됩니다.
지금 알 수 있듯이 현재 모든 테이블에 대해 18 번 반복됩니다. 대신 대신 테이블에 루프를 넣고 거기에 데이터를 입력하고 싶습니다.
이 방법이 있습니까? 내가 datatables 및 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();
어떤 도움이 될 것입니다.
UPDATE :
을 heres "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의 자연스러운 컬렉션은 데이터 집합입니다. http://msdn.microsoft.com/en-us/library/aeskbwf7.aspx –
실제로 데이터 세트가 있고 빈 테이블을 추가했습니다. 그러나 데이터 세트의 각 테이블에 쿼리를 추가하는 방법을 잘 모릅니다. – lemunk
현재 foreach (datatable tbl in myDataSet.tables)가 있지만 그 코드 컨텍스트를 통해 반복 할 필요가 있습니다. 구문 – lemunk