Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想从oracle数据库中获取多个数据,并将其存储到C#net中的另一个变量中_C#_.net - Fatal编程技术网

我想从oracle数据库中获取多个数据,并将其存储到C#net中的另一个变量中

我想从oracle数据库中获取多个数据,并将其存储到C#net中的另一个变量中,c#,.net,C#,.net,我想从oracle数据库中获取多个数据,并将其存储到C#net中的另一个变量中 我正在使用这个代码 public static void FetchData(string MeterSerialNumber, string MeterManufacturer, string MeterType, XmlDocument xmlReXML, string StartTime, string StopTime) { string Acctid = ""; s

我想从oracle数据库中获取多个数据,并将其存储到C#net中的另一个变量中

我正在使用这个代码

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());

      }
    }

但数据并没有保存在所有变量中。它会引发Indexout of boundrange异常。

不确定这是否是问题的根源,但这可能会从SQL查询中为您提供一些奇怪的数据:

你的意思是说,
OC.CITY作为discm
而不是
OC.CITY discm

此外,还有一个建议,建议您为datatable的列指定一种类型:

dtbl.Columns.Add("accid", typeof(int));
dtbl.Columns.Add("srno", typeof(int));
dtbl.Columns.Add("names", typeof(string));

等等。

不确定这是否是问题的根源,但这可能会给您的SQL查询提供一些奇怪的数据:

你的意思是说,
OC.CITY作为discm
而不是
OC.CITY discm

此外,还有一个建议,建议您为datatable的列指定一种类型:

dtbl.Columns.Add("accid", typeof(int));
dtbl.Columns.Add("srno", typeof(int));
dtbl.Columns.Add("names", typeof(string));

等等。

当您通过调试器运行此命令时,哪一行是异常?请怀疑问题出在ItemArray上。您没有显示声明。@bum,
ItemArray
将没有声明。它是
DataRow
上的一个属性。当您通过调试器运行此属性时,哪一行是异常?请怀疑问题出在ItemArray上。您没有显示声明。@bum,
ItemArray
将没有声明。它是
DataRow
上的一个属性。