无法将int类型转换为system.data.datatable

namespace LoginDAL
{
public class DAL:LoginIDAL.IDAL
{

    public DataTable selectUser(LoginEntity.UserInfo UserInfo)
    {
        SQLHelper.SQLHelper  sqlHelper = new SQLHelper.SQLHelper();
        SqlParameter[] sqlParams = { new SqlParameter("@userID", UserInfo.ID), new SqlParameter("@PassWord", UserInfo.PassWord) };
        string sql = @"SELECT * FROM [User_Info] WHERE UserID=@UserID and PWD =@PassWord";

         DataTable   table = sqlHelper.ExeculteNonQuery(sql, sqlParams, CommandType.Text); 这句报错无法将int类型转换为system.data.datatable
        return table;

sqlHelper.ExeculteNonQuery这个方法的返回值是int类型,你要在sqlHelper里面找到返回DataTable的对应方法。

楼主你的sqlHelper.ExeculteNonQuery方法的返回值是int类型吧,system.data.datatable类型一般是转换为实体类、list集合或者树状结构,如果要解决的话的方法返回的类型应该要进行修改

按照一般的命名规律,你找找 sqlHelpe 有没有 ExecuteDataSet 或者ExecuteDataTable 的方法。而NoQuary返回的应该只是查询影响条数。

ExeculteNonQuery返回的是影响数量,是int类型的;我猜测你想要查询结果,用SqlDataAdapter去填充:
DataTable dataTable = new DataTable();
SqlConnection sqlCn = new SqlConnection(connectionString);
SqlCommand sqlCmd = sqlCn.CreateCommand();
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
try
{
sqlCn.Open();
sqlDa.Fill(dataTable);
return dt;
}
catch
{
...
}

直接在回复中敲的,没有在VS中试一下