我想向表中加入一个人的相关属性,但是有很多,30多个列,所以牵涉的TEXT 、combo很多控件的TEXT属性,有的是时间格式。
主要有以下问题
1.其中某些属性不填,即有的列会为空。(主要问题)
2.时间格式问题。
比如,NAME  SEX  AGE  FOLK  ......
像这样的情况这种SQL语句用什么方法表达出来。希望高手给个方法!!!

解决方案 »

  1.   

    Insert 一个一个插入咯
      

  2.   

    哦 灵活啊就是自动了?
    反射得到控件名字(与数据库对应),然后自动生成SQL 插入之
      

  3.   

    学习如果是我,我就用dataset做,但不知道可行
      

  4.   

    哈哈,算你运气好,这问题我早发现了,而且写了一个通用类用于生成insert的field与value的对,今天心情好,把代码和大家分享吧:
    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)";……
      

  5.   

    使用反射编程,自动构造SQL语句,一劳永逸