Asp.net 如何将datarow设置为字符串数组?

Asp.net 如何将datarow设置为字符串数组?,asp.net,arrays,datarow,Asp.net,Arrays,Datarow,我有一个数据表,我正在其上应用Select()方法。之后,我想将结果放入字符串数组中。我尝试了以下代码,但它不起作用。 请让我知道这个问题的确切解决方案 DataTable dtget = HttpContext.Current.Cache["Hello"] as DataTable; string sqlFilter = "Securityid = '" + CommonClass.Encryptdata(txtSecurity.Text) + "'"; DataRow[]

我有一个数据表,我正在其上应用Select()方法。之后,我想将结果放入字符串数组中。我尝试了以下代码,但它不起作用。 请让我知道这个问题的确切解决方案

 DataTable dtget = HttpContext.Current.Cache["Hello"] as DataTable; 
    string sqlFilter = "Securityid = '" + CommonClass.Encryptdata(txtSecurity.Text) + "'";
    DataRow[] dr = dtget.Select(sqlFilter);
    if (dr.Length > 0)
    {
        String[] Con;
        for (int i = 0; i <= dr.Length; i++)
        {
            dr[i] = dr[i].ToString();

        }
    }
DataTable dtget=HttpContext.Current.Cache[“Hello”]作为DataTable;
字符串sqlFilter=“Securityid=”+CommonClass.Encryptdata(txtSecurity.Text)+“”;
DataRow[]dr=dtget.Select(sqlFilter);
如果(dr.Length>0)
{
字符串[]Con;

对于(int i=0;i您必须创建
列表

大概是这样的:

 List<String[]> list=new List<String[]>();

   if (dr.Length > 0)
    {
        for (int i = 0; i < dr.Length; i++)
        {
            string []ar=new string[dtget.Columns.Count];
            for(int j=0;j<dtget.Columns.Count;j++)
             {
              ar[j]=dr[i][j].ToString();
             }
             list.Add(ar);
        }
    }
List List=新列表();
如果(dr.Length>0)
{
对于(int i=0;i对于(int j=0;j您已经声明了数组,但没有实例化它。您也没有向实际数组写入任何内容,而是尝试直接回写到数据表

String[] Con= new String[dtget.Columns.Count]; 
for (int i = 0; i <= dr.Length; i++) 
{ 
    Con[i] = dr[i].ToString(); 
} 
String[]Con=新字符串[dtget.Columns.Count];

对于(int i=0;i而言,问题在于您将值分配给datarrow,而不是字符串数组。 改变

此外,您还缺少Con的新声明:

Con = new String[dr.Table.Columns.Count];
请注意,没有dr.Length,您必须检查列计数:

dr.Table.Columns.Count

最后,您可能应该将字符串数组定义向上移动,以便它在IF之外可用。

根据您的需要,您可以使用Datarow的ItemArray属性。它是一个对象数组而不是字符串数组,但是在使用它的值之前,您可以执行“ToString()”操作,并且您已经设置好了

string a = dr.ItemArray[i].ToString();

它在“dr[i]=dr[i].ToString();”处的抛出错误“无法将类型'string'隐式转换为'System.Data.DataRow'”,这是因为您编写了
dr[i]=dr[i].ToString();
而不是
Con[i]=dr[i].ToString();
块需要两个
:由
Select()返回的行数上的外一个周期
method,内部的循环取决于数据表中的列数。此外,您必须初始化二维数组:
String[]Con=newstring[dr.length,dtget.columns.count];
dr.Table.Columns.Count
string a = dr.ItemArray[i].ToString();