运行时出现编译器错误消息:无法将类型“System.Data.Common.DbDataReader”隐式转换为“System.Da
usingSystem;usingSystem.Configuration;usingSystem.Data;usingSystem.Linq;usingSystem.W...
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
public partial class _Default : System.Web.UI.Page
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = null;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string name = txtname.Text.Trim();
string pwd = txtpasswd.Text.Trim();
string sql = "select * from t_User where name='" + name + "','" + pwd + "'";
cmd = db.GetSqlStringCommand(sql);
SqlDataReader dr = cmd.ExecuteReader();
if (name == "")
{
msg_name.Text = "请输入用户名";
}
else if (pwd == "")
{
msg_pwd.Text = "请输入用户密码";
}
if (dr.Read())
{
if (dr["passwd"].ToString() != pwd)//判断密码是否正确
{
Response.Write("用户密码不正确");
}
else//在session对象中记录用户名和用户身份信息
{
Session["name"] = name;//[name]=nametxt.Text
if (Convert.ToBoolean(Session["name"]))
Response.Redirect("default.aspx");
}
}
else
{
Response.Write("用户名不存在");
}
}
}
运行时出现编译器错误消息: CS0266: 无法将类型“System.Data.Common.DbDataReader”隐式转换为“System.Data.SqlClient.SqlDataReader”。存在一个显式转换(是否缺少强制转换?) 展开
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
public partial class _Default : System.Web.UI.Page
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = null;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string name = txtname.Text.Trim();
string pwd = txtpasswd.Text.Trim();
string sql = "select * from t_User where name='" + name + "','" + pwd + "'";
cmd = db.GetSqlStringCommand(sql);
SqlDataReader dr = cmd.ExecuteReader();
if (name == "")
{
msg_name.Text = "请输入用户名";
}
else if (pwd == "")
{
msg_pwd.Text = "请输入用户密码";
}
if (dr.Read())
{
if (dr["passwd"].ToString() != pwd)//判断密码是否正确
{
Response.Write("用户密码不正确");
}
else//在session对象中记录用户名和用户身份信息
{
Session["name"] = name;//[name]=nametxt.Text
if (Convert.ToBoolean(Session["name"]))
Response.Redirect("default.aspx");
}
}
else
{
Response.Write("用户名不存在");
}
}
}
运行时出现编译器错误消息: CS0266: 无法将类型“System.Data.Common.DbDataReader”隐式转换为“System.Data.SqlClient.SqlDataReader”。存在一个显式转换(是否缺少强制转换?) 展开
3个回答
展开全部
你用的 Sql Server,那最好就用 SqlCommand,就不需要强制转换了。否则你就修改
SqlDataReader dr = cmd.ExecuteReader();
为
SqlDataReader dr = (SqlDataReader)cmd.ExecuteReader();
SqlDataReader dr = cmd.ExecuteReader();
为
SqlDataReader dr = (SqlDataReader)cmd.ExecuteReader();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SqlDataReader dr = cmd.ExecuteReader(); //接收错误,ExecuteReader返回的是System.Data.Common.DbDataReader类型
这是c#代码?
果然和java很像
这是c#代码?
果然和java很像
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BestAns,回答的应该是正确的,就是你要么直接用SqlCommand,要么把DbCommand转换为SqlCommand,因为你是用SqlDataReader读的...类型不符合人家读的那个~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询