#region "构造SQL语句"
//通过数组
public string CreateSqlByArry(string TableName,object []Ary,string type)
{
string Sql="";
switch(type)
{
case "update":
{
if(Ary.Length % 2>0)
{
return Sql="Fileds,Values Not Matching";
}
for(int i=0;i<Ary.Length;i=i+2)
{
if(Ary[i+1].GetType().Name=="String" || Ary[i+1].GetType().Name=="DateTime" || Ary[i+1].GetType().Name=="Date")
{
Sql = Sql + "," + Ary[i].ToString() + "='" + Ary[i+1].ToString()+"'";
}
else
{
Sql = Sql + "," +Ary[i].ToString() + "=" + Ary[i+1].ToString();
}
}
Sql=Sql.Remove(0,1);
Sql= "Update " + TableName + " Set " + Sql;
break;
}
case "insert":
{
string Field="",Value="";
if(Ary.Length%2>0)
{
return Sql="Fileds,Values Not Matching";
}
for(int i=0;i<Ary.Length;i=i+2)
{
if(Ary[i+1].GetType().Name=="String" || Ary[i+1].GetType().Name=="DateTime" || Ary[i+1].GetType().Name=="Date")
{
Field = Field + "," + Ary[i].ToString();
Value = Value + ",'" + Ary[i+1].ToString() + "'";
}
else
{
Field = Field + "," + Ary[i].ToString();
Value = Value + "," + Ary[i+1].ToString();
}
}
Field=Field.Remove(0,1);
Value=Value.Remove(0,1);
Sql= "Insert Into " + TableName + "(" + Field + ")Values(" + Value + ")" ;
break;
}
}
return Sql;
}
/// <summary>
/// //通过Xml
/// </summary>
/// <param name="strXml"></param>
/// <param name="type"></param>
/// <param name="flag">当flag=="1"时insert,updat 语句值为字符串</param>
/// <returns></returns>
public string CreateSqlByXml(string strXml,string type,string flag)
{
string Sql="";
switch(type)
{
case "insert":
{
return GetInsertSQL( strXml, flag);
}
case "update":
{
return GetUpdateSQL( strXml, flag);
}
}
return Sql;
}
public string GetInsertSQL(string strXML,string flag)
{
string SQL = "",str1="",str2="";
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXML);
string first_str = doc.DocumentElement.Name;
SQL = "insert into "+first_str;
foreach(XmlNode xn in doc.FirstChild)
{
str1 = str1.Length>0?str1+","+xn.Name:xn.Name;
if(flag.Equals("1"))
{
str2 = str2.Length>0?str2+",'"+xn.InnerText+"'":"'"+xn.InnerText+"'";
}
else
{
str2 = str2.Length>0?str2+","+xn.InnerText:xn.InnerText;
}
}
SQL =SQL+ "("+str1+")values("+str2+")\nselect @@IDENTITY";
return SQL;
}
public string GetUpdateSQL(string strXML,string flag)
{
string SQL="",str1="";
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXML);
string first_str = doc.DocumentElement.Name;
SQL = "update "+first_str+" set ";
foreach(XmlNode xn in doc.FirstChild)
{
if(flag.Equals("1"))
{
str1 = str1.Length>0?str1+","+xn.Name+"='"+xn.InnerText+"'":xn.Name+"='"+xn.InnerText+"'";
}
else
{
str1 = str1.Length>0?str1+","+xn.Name+"="+xn.InnerText:xn.Name+"="+xn.InnerText;
}
}
SQL = SQL+str1;
return SQL;
}
#endregion
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通