c# – 从数据库获取数据的问题
发布时间:2020-12-15 04:15:13 所属栏目:百科 来源:网络整理
导读:我试图通过使用下面的代码从数据库中获取数据….. 如果表中没有数据,它将始终进入 这个说法 我使用mysql.net连接器获取数据,我正在做winforms应用程序 使用c# public DataTable sales(DateTime startdate,DateTime enddate) { const string sql = @"SELECT m
我试图通过使用下面的代码从数据库中获取数据…..
如果表中没有数据,它将始终进入 我使用mysql.net连接器获取数据,我正在做winforms应用程序 public DataTable sales(DateTime startdate,DateTime enddate) { const string sql = @"SELECT memberAccTran_Source as Category,sum(memberAccTran_Value) as Value FROM memberacctrans WHERE memberAccTran_DateTime BETWEEN @startdate AND @enddate GROUP BY memberAccTran_Source"; return sqlexecution(startdate,enddate,sql); } 以下代码用于返回sqlexceution …函数.. private static DataTable sqlexecution(DateTime startdate,DateTime enddate,string sql) { var table = new DataTable(); using (var conn = new MySql.Data.MySqlClient.MySqlConnection(connectionstring)) { conn.Open(); var cmd = new MySql.Data.MySqlClient.MySqlCommand(sql,conn); var ds = new DataSet(); var parameter = new MySql.Data.MySqlClient.MySqlParameter("@startdate",MySql.Data.MySqlClient.MySqlDbType.DateTime); parameter.Direction = ParameterDirection.Input; parameter.Value = startdate.ToString(dateformat); cmd.Parameters.Add(parameter); var parameter2 = new MySql.Data.MySqlClient.MySqlParameter("@enddate",MySql.Data.MySqlClient.MySqlDbType.DateTime); parameter2.Direction = ParameterDirection.Input; parameter2.Value = enddate.ToString(dateformat); cmd.Parameters.Add(parameter2); var da = new MySql.Data.MySqlClient.MySqlDataAdapter(cmd); da.Fill(ds); try { table = ds.Tables[0]; } catch { table = null; } } return table; } 即使没有数据,流程也会流向此行
我怎么能减少这个…… 任何人都会对此有所帮助…. 解决方法
在你的情况下,如果你认为如果没有可用的行,那么catch块会被释放,因为即使没有数据,一旦选择查询被排除而没有例外,它会创建带有列但没有行的数据表.
为此,我认为你可以使用ds.table [0] .rows.count属性,如果datatable中没有行,则返回0. if ( ds.Tables[0].Rows.Count > 0 ) table = ds.Tables[0]; else table=null; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |