我想向表中加入一个人的相关属性,但是有很多,30多个列,所以牵涉的TEXT 、combo很多控件的TEXT属性,有的是时间格式。
主要有以下问题
1.其中某些属性不填,即有的列会为空。(主要问题)
2.时间格式问题。
比如,NAME SEX AGE FOLK ......
像这样的情况这种SQL语句用什么方法表达出来。希望高手给个方法!!!
主要有以下问题
1.其中某些属性不填,即有的列会为空。(主要问题)
2.时间格式问题。
比如,NAME SEX AGE FOLK ......
像这样的情况这种SQL语句用什么方法表达出来。希望高手给个方法!!!
反射得到控件名字(与数据库对应),然后自动生成SQL 插入之
1.添加类ColumnNameValuePairusing System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Text;/// <summary>
/// 用于生成sql insert语句中数据表中列名、值的类
/// </summary>
public class ColumnNameValuePair
{
private string columnNames;
private string columnValues;
public string ColumnNames
{
get
{
return columnNames;
}
set
{
columnNames = value;
}
}
public string ColumnValues
{
get
{
return columnNames;
}
set
{
columnNames = value;
}
}
public ColumnNameValuePair(Dictionary<string,object> nameValuePair)
{
StringBuilder columnNameBuilder = new StringBuilder();
StringBuilder columnValueBuilder = new StringBuilder();
//连接字符串
foreach (KeyValuePair<string, object> kvp in nameValuePair)
{
columnNameBuilder.Append(kvp.Key + ",");
columnValueBuilder.Append("'" + kvp.Value + "'" + ",");
}
//截取字符串到符合sql命令的格式
if (nameValuePair.Count > 0)
{
columnNameBuilder.Remove(itemBuilder.Length - 1, 1);
columnValueBuilder.Remove(valueBuilder.Length - 1, 1);
}
this.columnNames = columnNameBuilder.ToString();
this.columnValues = columnValueBuilder.ToString();
}
}2.构建一个Dictionary<string,object> nameValuePair 用于存储字段名和值
例如: columnNameValuePair.Add("Name","小明");3.ColumnNameValuePair columnNameValuePair = new ColumnNameValuePair(nameValuePair);
string strInsert = "insert into tableName(columnNameValuePair.ColumnNames) values(columnNameValuePair.ColumnValues)";……