?? valuesclause.cs
字號:
?using System;
using System.Text;
using Lephone.Util.Text;
using Lephone.Data.Common;
using Lephone.Data.Dialect;
using Lephone.Data.SqlEntry;
namespace Lephone.Data.Builder.Clause
{
[Serializable]
public class ValuesClause : KeyValueCollection, IClause
{
private const string StatementTemplate = "({0}) Values ({1})";
public ValuesClause() {}
public string ToSqlText(DataParamterCollection dpc, DbDialect dd)
{
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
foreach ( KeyValue kv in this )
{
string dpStr;
if (kv.ValueType == typeof(AutoValue))
{
dpStr = dd.DbNowString;
}
else
{
if (DataSetting.UsingParamter)
{
dpStr = string.Format(dd.ParamterPrefix + "{0}_{1}", DataParamter.LegalKey(kv.Key), dpc.Count);
DataParamter dp = new DataParamter(dpStr, kv.NullableValue, kv.ValueType);
dpc.Add(dp);
}
else
{
dpStr = DataTypeParser.ParseToString(kv.Value, dd);
}
}
sb1.Append( dd.QuoteForColumnName(kv.Key) );
sb1.Append(",");
sb2.Append( dpStr );
sb2.Append(",");
}
return string.Format( StatementTemplate, StringHelper.GetStringLeft(sb1.ToString()), StringHelper.GetStringLeft(sb2.ToString()) );
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -