写????????SQL
????????? ???????[ 2017/1/5 11:06:50 ] ????????SQL Server ?????
????1.???
???????????????????C#??????SQL?????????.???????些????械?娲�????????????????????.
???????????写娲�?????SQL???C#????????????????????????????????些?????????
????2.????????
????2.1?????Dapper??????????????????????????SQL:
????SELECT
????a.*
????FROMdbo.ptypea
????INNERJOINdbo.PType_PricebONa.typeId=b.PTypeID
????LEFTJOINdbo.PType_UnitscONa.typeId=c.UnitsId
????WHEREa.typeId=@typeidANDa.CreateDate=@Area
????ANDpreprice1=@preprice1ANDdeleted=@deleted
????????@????????????婊�????????(?榉�)????????????SQL????
????2.2?????????????SQLServerProfiler???????SQL
?????????????????械?SQLServer????????械?SQL??????????????????????SQL?????????????械?SQL?????榉�?????????Ctrl+F???????????????????????????????????????榉�.
????3.???????
?????????????????SQL???????????Dapper?????????????SQL?????????????:
publicclassSqlHelper
{
publicDictionary<string??object>Param=newDictionary<string??object>();
publicstringReplaceParam(refstringsql)
{
if(Param.Count==0)
{
returnsql;
}
StringBuildersb=newStringBuilder();
sb.Append(sql);
foreach(variteminParam)
{
varparamName=item.Key;
varparamValue=item.Value;
vartype=paramValue.GetType();
if(type==typeof(string)||type==typeof(DateTime))
{
//?????
sb.Replace($"@{paramName}"??$"'{paramValue}'");
}
elseif(type==typeof(bool))
{
//bool????
if(paramValue.ToString()=="True")
{
sb.Replace($"@{paramName}"??"1");
}
else
{
sb.Replace($"@{paramName}"??"0");
}
}
else
{
//???
sb.Replace($"@{paramName}"??paramValue.ToString());
}
}
sql=sb.ToString();
returnsql;
}
}
???????????:
publicIEnumerable<Ptype>GetPtypeDetail()
{
varsql=@"
SELECTa.*
FROMdbo.ptypea
INNERJOINdbo.PType_PricebONa.typeId=b.PTypeID
LEFTJOINdbo.PType_UnitscONa.typeId=c.UnitsId
WHEREa.typeId=@TypeidANDa.CreateDate=@CreateDate
ANDpreprice1=@preprice1ANDdeleted=@deleted
";
varsqlHelper=newSqlHelper();
sqlHelper.Param.Add("Typeid"??"001");
sqlHelper.Param.Add("CreateDate"??DateTime.Now);
sqlHelper.Param.Add("preprice1"??3.62M);
sqlHelper.Param.Add("deleted"??true);
sqlHelper.ReplaceParam(refsql);
IEnumerable<Ptype>plist=newList<Ptype>();
using(varcon=SQLServerHelper.GetConnection())
{
plist=con.Query<Ptype>(sql);
}
returnplist;
}
????????????Dapper??械?SQL???????SQL????????????????.
????PS:?????????????????婊�??效????????????????C#????????婊�?????????????????????????????????????????????????????????????.
????4.??
???????????Dapper??械?????????@??????SQL??????????婊�?????SQL.
???????????????????????:小??????tm?懈?XXbug????????.
??????????????????DapperQuery????????
??????????SQL?????????????????SQL???械????????????????婊籃?????????????SQLServerProfiler???????????!!!
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11