ASP.Net C# 无法将类型“System.Data.SqlClient.SqlDataReader”隐式转换为“System.Data.DataTable" 100
大神们,我在写验证用户名是否存在的代码之中,在其中的DataTabledt=db.reDr(str);这句中报错,提示无法将类型“System.Data.SqlClien...
大神们,我在写验证用户名是否存在的代码之中,在其中的 DataTable dt = db.reDr(str);这句中报错,提示无法将类型“System.Data.SqlClient.SqlDataReader”隐式转换为“System.Data.DataTable",具体代码是
//公共类代码,公共类文件名为DB.cs
public SqlDataReader reDr(string str)
{
SqlConnection conn = GetCon(); //链接数据库
conn.Open();
SqlCommand com = new SqlCommand(str, conn);
SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
//调取CheckName方法判断用户名是否存在
{
public int CheckName()
{
DB db = new DB();
string str = "select count(*) from db_User where db_user='" + this.u_name.Text + "'";
try
{
DataTable dt = db.reDr(str); //这里报错
if (dt.Rows[0][0].ToString() != "0")
{
return -1;
}
else
{
return 2;
}
}
catch (Exception ee)
{
return 0;
}
}
请问怎样解决这个报错问题,谢谢! 展开
//公共类代码,公共类文件名为DB.cs
public SqlDataReader reDr(string str)
{
SqlConnection conn = GetCon(); //链接数据库
conn.Open();
SqlCommand com = new SqlCommand(str, conn);
SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
//调取CheckName方法判断用户名是否存在
{
public int CheckName()
{
DB db = new DB();
string str = "select count(*) from db_User where db_user='" + this.u_name.Text + "'";
try
{
DataTable dt = db.reDr(str); //这里报错
if (dt.Rows[0][0].ToString() != "0")
{
return -1;
}
else
{
return 2;
}
}
catch (Exception ee)
{
return 0;
}
}
请问怎样解决这个报错问题,谢谢! 展开
展开全部
你取得数据的方式不对,直接就可以检索出数据放到datatable里,下面是标准的取得sqlserver数据库放到datatable里的代码,最后两行是直接绑定给gridview
string sql = string.Format(selSql);
DataTable table = new DataTable();
using (SqlConnection connection = new SqlConnection(DBConnection.DB_CONNECTION))
{
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
adapter.Fill(table);
}
gvList.DataSource = table;
gvList.DataBind();
展开全部
你看一下你的db类,里面写一个返回Datatable的函数。
不然,你只能是创建 SqlDataReader对象来接收返回值了。
不然,你只能是创建 SqlDataReader对象来接收返回值了。
追问
请问在DB公共类里的Datatable的函数应该怎样写?
追答
/// <summary>
/// 执行查询SqlDataApter命令,返回一个DataTable对象
/// </summary>
/// <param name="constr">连接的数据库信息字符串</param>
/// <param name="sql">执行的sql操作语句</param>
/// <returns></returns>
public static DataTable ExecuteDataTable(string sql)
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlDataAdapter sda = new SqlDataAdapter(sql, con))
{
sda.Fill(dt);
}
}
return dt;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询