[英]I want to fetch multiple data from oracle database and want to store it into another variables in C# .net
I want to fetch multiple data from oracle database and want to store it into another variables in C# .net. 我想从oracle数据库中获取多个数据,并将其存储到C#.net中的另一个变量中。
I am using this code. 我正在使用此代码。
public static void FetchData(string MeterSerialNumber, string MeterManufacturer, string MeterType, XmlDocument xmlReXML, string StartTime, string StopTime)
{
string Acctid = "";
string Ser = "";
string name1 = "";
string towns = "";
string Qry = "SELECT DISTINCT AC.ACCOUNTID as accid ,MT.SERIALNUMBER as srno,AC.NAME as names,OC.OPCONAME as town1,OC.CITY discm FROM ACCOUNT AC, XXMETERHIST M, LSMDPHYSICALMETER MT,LSSERVICEPOINT P,LSMDMTRMANUFACTURER MANUFAC,OPERATINGCOMPANY OC,LSMARKET LS WHERE AC.UIDACCOUNT = M.UIDACCOUNT AND M.UIDPHYSICALMETER = MT.UIDPHYSICALMETER and LS.MARKETID = OC.OPCOCODE and LS.UIDMARKET = P.UIDMARKET and MANUFAC.UIDMTRMANUFACTURER = MT.UIDMETERMANUFACTURER AND M.UIDSERVICEPOINT = P.UIDSERVICEPOINT and MT.SERIALNUMBER ='?' AND MT.UIDPHYSMTRTYPE = '43'";
OleDbConnection con = new OleDbConnection("provider=MSDAORA.oracle;user id=testapp;password=testapp;data source=mdmdb_tb");
DataTable dtbl = new DataTable();
OleDbDataAdapter dad = new OleDbDataAdapter(Qry, con);
dad.SelectCommand.Parameters.Add("?", OleDbType.VarChar).Value = MeterSerialNumber;
con.Open();
dtbl.Columns.Add("accid");
dtbl.Columns.Add("srno");
dtbl.Columns.Add("names");
dtbl.Columns.Add("town1");
dtbl.Columns.Add("discm");
dad.Fill(dtbl);
if (dtbl.Rows.Count > 0)
{
Acctid = (dtbl.Rows[0].ItemArray[0].ToString());
Ser = (dtbl.Rows[0].ItemArray[1].ToString());
name1 = (dtbl.Rows[0].ItemArray[2].ToString());
towns = (dtbl.Rows[0].ItemArray[3].ToString());
}
}
But the data is not saved in all the variables.Its throwing Indexout of boundrange exception. 但是数据并没有保存在所有变量中,它会抛出Indexout超出边界范围异常。
Not sure that this would be the root of the issue, but this might be giving you some weird data from your SQL query: 不确定这是否是问题的根源,但这可能会给您一些来自SQL查询的奇怪数据:
Did you mean OC.CITY AS discm
instead of OC.CITY discm
? 您是说
OC.CITY AS discm
而不是OC.CITY discm
吗?
Also, just a suggestions that you might want to specify a type for the columns of your datatable: 另外,您可能需要为数据表的列指定类型的建议:
dtbl.Columns.Add("accid", typeof(int));
dtbl.Columns.Add("srno", typeof(int));
dtbl.Columns.Add("names", typeof(string));
etc. 等等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.