C# 使用返回数据表的方法

C# 使用返回数据表的方法,c#,datatable,idisposable,C#,Datatable,Idisposable,考虑以下示例: public static DataTable GetDataTable() { using(DataTable dt = new DataTable()) { // fill DataTable logic return dt; } } public void main() { DataTable dt = GetDataTable(); // contine using dt } 我是否希望dt在m

考虑以下示例:

public static DataTable GetDataTable()
{
    using(DataTable dt = new DataTable())
    {
        // fill DataTable logic
        return dt;
    }
}

public void main()
{
    DataTable dt = GetDataTable();

    // contine using dt
}

我是否希望
dt
main()
中可用,或者
DataTable
是否在
GetDataTable()
中处理了
dt

是的,
DataTable
GetDataTable

中退出
using
块时,必须替换
数据表

public  void main()



一旦您的代码离开
GetDataTable
dt
将被处理。因为使用
调用
IDisposable
Yes,所以当代码退出作用域时,
数据表将被处理

您应该使用
移动到
main()

在文本框中搜索,然后获取结果!:)快乐的编码

public static void Main()
public static DataTable GetDataTable()
{
  using(DataTable dt = new DataTable())
  {
    // fill DataTable logic
    return dt;
  }
}
public static DataTable GetDataTable()
{
    DataTable dt = new DataTable()

    // fill DataTable logic
    return dt;
}

public void main()
{
  using(DataTable dt = GetDataTable())
  {
  // contine using dt
  }//here the table is disposed
}
    public DataTable GetValue(string name)
    {
        string connection = @"Data Source=DESKTOP-M5TQV9A;Initial Catalog=ALLTEST;Integrated Security=True";
        DataTable dt;
        SqlConnection con = new SqlConnection(connection);
        con.Open();
        using (SqlCommand cmd = new SqlCommand("up_searchUsers", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@SearchName", SqlDbType.VarChar).Value = name;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            dt = new DataTable();
            da.Fill(dt);
            con.Close();
            return dt;
        }
    }
dataGridView1.DataSource = GetValue(textBox1.Text);