使用最簡單的方式進行對數據庫訪問,並且查詢返回需要的數據;如下步驟:
一、web.config 配置
<connectionStrings>
<add name="ABConnection" connectionString="Data Source=.;Initial Catalog=xx_Db;User ID=xx;Password=789xxxxxxx;" providerName="System.Data.SqlClient" />
<add name="AB2Connection" connectionString="Data Source=.;Initial Catalog=xxx_Db; User ID=sa;Password=789xxxxxxx;" providerName="System.Data.SqlClient" />
</connectionStrings>
二、Entity
namespace xx.Entity
{
public class Entity : DbContext
{
public virtual DbSet<User> Users { get; set; }
public ScrmEntity() : base("name=AB2Connection"){ }
}
}
三、Model User 的模型
四、sqlHelp 通過sql 獲取數據庫查詢數據
public class sqlHelper
{
public static List<T> QueryList<T>(string sql, params SqlParameter[] para )
{
string connStr = ConfigurationManager.ConnectionStrings["AB2Connection"].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.AddRange(para);
conn.Open();
var reader= comm.ExecuteReader();
List<T> DataList = new List<T>();
while (reader.Read())
{
T RowInstance = Activator.CreateInstance<T>();//動態創建數據實體對象
//通過反射取得對象所有的Property
foreach (PropertyInfo Property in typeof(T).GetProperties())
{
try
{
//取得當前數據庫字段的順序
int Ordinal = reader.GetOrdinal(Property.Name);
if (reader.GetValue(Ordinal) != DBNull.Value)
{
var ptype = Property.PropertyType;
var pvalue = reader.GetValue(Ordinal);
var ppvalue = Convert.ChangeType(pvalue, ptype);
//將DataReader讀取出來的數據填充到對象實體的屬性里
Property.SetValue(RowInstance, ppvalue, null);
}
}
catch
{
break;
}
}
DataList.Add(RowInstance);
}
return DataList;
}
五、xxController
string sql = "select Password from xxTable.Users where UserName=@loginId";
//構建參數
SqlParameter[] pms = new SqlParameter[]
{
new SqlParameter("@loginId",SqlDbType.VarChar,50){ Value =user.userName},
};
var hashPassword = sqlHelper.ExecuteScalar(sql, pms);