使用class将datareader返回到datagridview

时间:2017-05-19 12:36:10

标签: c# datagridview

代码改进我已经让类]多次不重复连接代码和gridviewCodes,但我收到的错误是

无法将类型'void'隐式转换为'object'C#

请任何人都可以帮助我克服它

DbConnection类

var result = Regex.Matches(str, @"\[[^][]+]") // Pattern may be \[\w+]
        .Cast<Match>()
        .Select(x => x.Value)
        .Where(m => m.Any(Char.IsDigit))   // Here, check if there is at least 1 digit
        .ToList();

调用DbConnection类

DbConnection

1 个答案:

答案 0 :(得分:1)

在这里,您使用方法DisplayDataGridView在执行查询后获取DataTable,因此最好将返回类型从对象更改为DataTable。在try块中声明并初始化dt,DataTable,并在catch之后使用单个return语句。因此,如果查询成功执行,您将获得填充的DataTable,如果出现错误,您将获得一个新的DataTable。现在更好的是更改函数名称。最后,方法签名将如下所示:

public DataTable GetDataTable(string QurStr)
{
    DataTable dt = new DataTable();
    try
    {
        using (MySqlCommand cmd = new MySqlCommand(QurStr, Conn))
        using (MySqlDataReader dr = cmd.ExecuteReader())
        { 
           dt.Load(dr);
        }           
     }
     catch (Exception ex )
     {
        MessageBox.Show(ex.ToString()+ " \n DisplayDataGridView ");
     }
     return dt;
}