C# 返回类或任何它是
我想从函数返回C# 返回类或任何它是,c#,C#,我想从函数返回DataReader。所以我可以使用它,不管它是MySQL还是MS-SQL private void Connection(string Command) { if (DBtype == "MySQL") { MySqlConnection MysqlConnection1 = new MySqlConnection(CS); MySqlCommand MySqlcommand = new MySqlCommand(Co
DataReader
。所以我可以使用它,不管它是MySQL还是MS-SQL
private void Connection(string Command)
{
if (DBtype == "MySQL")
{
MySqlConnection MysqlConnection1 = new MySqlConnection(CS);
MySqlCommand MySqlcommand = new MySqlCommand(Command, MysqlConnection1);
MysqlConnection1.Open();
MySqlDataReader reader = MySqlcommand.ExecuteReader();
}
else
{
SqlConnection sqlConnection1 = new SqlConnection(CS);
SqlCommand Sqlcommand = new SqlCommand(Command, sqlConnection1);
sqlConnection1.Open();
SqlDataReader reader = Sqlcommand.ExecuteReader();
}
}
您可以将方法的返回类型设置为
IDataReader
,因为SqlDataReader
和MySqlDataReader
都实现了这个接口
private IDataReader Connection(string Command)
{
IDataReader dataReader = null;
if (DBtype == "MySQL")
{
MySqlConnection MysqlConnection1 = new MySqlConnection(CS);
MySqlCommand MySqlcommand = new MySqlCommand(Command, MysqlConnection1);
MysqlConnection1.Open();
dataReader = MySqlcommand.ExecuteReader();
}
else
{
SqlConnection sqlConnection1 = new SqlConnection(CS);
SqlCommand Sqlcommand = new SqlCommand(Command, sqlConnection1);
sqlConnection1.Open();
dataReader = Sqlcommand.ExecuteReader();
}
return dataReader;
}
此外,我认为您应该将数据库的类型作为参数传递给
连接
方法。是否查看它们是否共享一个公共基类?提示:是的。最好的办法是返回并尝试使用ODBC(OdbcConnection
等)-它会统一数据库。但是如果你想返回一些东西,为什么你的方法是无效的?是的,但我有IDataReader dossent的问题。有没有什么好的小解决方案,然后它就不是金子了?@Kaalund有一件事我会试试,如果我在你的位置上,它将使用while
,while(dataReader.Read())
。通过这种方式,您可以检查dataReader
是否有行,并且在while
的每个步骤中,当条件为true
,dataReader.Read()==true
时,读取当前值。