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