Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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
C# 我想在C中将所选行中的两个变量作为数组传递_C# - Fatal编程技术网

C# 我想在C中将所选行中的两个变量作为数组传递

C# 我想在C中将所选行中的两个变量作为数组传递,c#,C#,我是C语言的新手。我有一个包含两列的表,我希望将每个选定行作为SQL查询的数组变量返回 我不知道如何在C中完成它。 我编辑了为传递一列数据而编写的代码。任何帮助都将不胜感激 private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (SelectionCompleteCheckBox.Checked == true) { List<string> studyIDs =

我是C语言的新手。我有一个包含两列的表,我希望将每个选定行作为SQL查询的数组变量返回

我不知道如何在C中完成它。 我编辑了为传递一列数据而编写的代码。任何帮助都将不胜感激

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    if (SelectionCompleteCheckBox.Checked == true)
    {
        List<string> studyIDs = new List<string>();
        List<string> ASSAYDESCRIPTIONs = new List<string>();
        foreach (DataGridViewRow row in AssayData.SelectedRows)
        {
            try
            {
                studyIDs.Add(row.Cells["STUDYID"].Value.ToString());
                ASSAYDESCRIPTIONs.Add(row.Cells["ASSAYDESCRIPTION"].Value.ToString());
            }
            catch (Exception ee)
            {
                //Do something?
            }
            if (studyIDs.Count > 0)
            {
                controller.GetResult(studyIDs, ASSAYDESCRIPTIONs);
            }
        }
    }
}

public void GetResult(Array{studyIDs,ASSAYDESCRIPTIONs})
{
    EventArg<DataTable> e;
    e = new EventArg<DataTable>(database.GetResults(studyIDs, ASSAYDESCRIPTIONs));
    if (SelectedDataUpdate != null)
    {
        SelectedDataUpdate.Invoke(this, e);
    }
}

最好创建一个类,使其更容易理解

例如:

public class TestResult
{
 public string StudyID {get;set;}
 public string AssayDescription {get;set;} 
}
现在,当您获得数据时,您可以构建一个测试结果列表

注意:我不确定这个方法是如何工作的,但可能有一种方法


也许你最好解释一下你想用这些数据做什么,因为这些代码看起来完全不清楚,不可编译。你想返回一个数组,字符串数组吗?物体?您知道如何从SelectedRows创建列表,只需调用List.toArrayAs@Steve就可以将任何列表转换为数组。我正在尝试将这两个变量传递到一起,以对原因进行SQL查询。所以,为了检索和更新表,必须同时读取这两个变量。我如何调用每个变量的位置?我还没有看到你的database.getResultsStudyId,所以我不确定你需要做什么类型的更改。我的示例中的列表包含这些信息。您可以循环使用这些值并进行更新。
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
  if (SelectionCompleteCheckBox.Checked == true)
  {
      List<TestResult> results = new List<TestResult>();
      foreach (DataGridViewRow row in AssayData.SelectedRows)
      {
          try
          {
              var temp = new TestResult();
              temp.StudyID = row.Cells["STUDYID"].Value.ToString()
              temp.AssyDescription = row.Cells["ASSAYDESCRIPTION"].Value.ToString()
              results.Add(temp);
          }
          catch (Exception ee)
          {
              //Do something?
          }
      }
      if (results.Count > 0)
      {
          controller.GetResult(results);
      }

}
public void GetResult(List<TestResult> results)
{

    foreach(var test in results)
    {
      //update result data table.

    }

}