代码:
        public static DataTable CreateCalibrationTable()
        {
            DataTable table = new DataTable(CALIBRATION_TABLE);
            table.Columns.Add(COL_PROCESS_ID, typeof(Int32));
            table.Columns.Add(COL_TYPE, typeof(Int32));
            table.Columns.Add(COL_ITERATION, typeof(Int32));
            table.Columns.Add(COL_FREQ, typeof(Int32));
            table.Columns.Add(COL_CHANNEL, typeof(Int32));
            table.Columns.Add(COL_ATTENUATION, typeof(Double));
            table.Columns.Add(COL_CAL_WARMUP, typeof(Int32));
            table.Columns.Add(COL_VER_WARMUP, typeof(Int32));
            table.Columns.Add(COL_POWER, typeof(Int32));
            table.Columns.Add(COL_POUT, typeof(Double));
            table.Columns.Add(COL_GAIN, typeof(Int32));
            table.Columns.Add(COL_PASS, typeof(Int32));            table.PrimaryKey = new DataColumn[] { 
                table.Columns[COL_PROCESS_ID],
                table.Columns[COL_TYPE],
                table.Columns[COL_ITERATION],
                table.Columns[COL_FREQ],
                table.Columns[COL_CHANNEL],
                table.Columns[COL_POWER]
            };            return table;
        }        public static DataSet CreateCalibrationDataSet()
        {
            DataSet data = new DataSet();
            data.Tables.Add(CreateCalibrationTable());
            return data;
        }
        public static SqlDataAdapter CreateCalibrationAdapter(SqlConnection connection)
        {
            SqlDataAdapter adapter = new SqlDataAdapter(CALIBRATION_SELECT_CMD, connection);            adapter.InsertCommand = new SqlCommand("INSERT INTO dbo.PA_CAL " +
            "(ProcessID, Type, Iteration, TestChannel, TestFrequency, Attenuation, CalWarmup, VerWarmup, RequestedPower, Pout, Gain, PassCode) " +
            " VALUES (@ProcessID, @Type, @Iteration, @Channel, @Freq, @Attenuation, @CalWarmup, @VerWarmup, @Power, @Pout, @Gain, @Pass);",
            connection);            adapter.InsertCommand.Parameters.Add("@ProcessID", SqlDbType.Int, 0, "ProcessID");
            adapter.InsertCommand.Parameters.Add("@Type", SqlDbType.SmallInt, 0, "Type");
            adapter.InsertCommand.Parameters.Add("@Iteration", SqlDbType.SmallInt, 0, "Iteration");
            adapter.InsertCommand.Parameters.Add("@Freq", SqlDbType.SmallInt, 0, "TestFrequency");
            adapter.InsertCommand.Parameters.Add("@Channel", SqlDbType.SmallInt, 0, "TestChannel");
            adapter.InsertCommand.Parameters.Add("@Attenuation", SqlDbType.Real, 0, "Attenuation");
            adapter.InsertCommand.Parameters.Add("@CalWarmup", SqlDbType.SmallInt, 0, "CalWarmup");
            adapter.InsertCommand.Parameters.Add("@VerWarmup", SqlDbType.SmallInt, 0, "VerWarmup");
            adapter.InsertCommand.Parameters.Add("@Power", SqlDbType.SmallInt, 0, "RequestedPower");
            adapter.InsertCommand.Parameters.Add("@Pout", SqlDbType.Real, 0, "Pout");
            adapter.InsertCommand.Parameters.Add("@Gain", SqlDbType.SmallInt, 0, "Gain");
            adapter.InsertCommand.Parameters.Add("@Pass", SqlDbType.SmallInt, 1, "PassCode");            return adapter;
        }            protected void UpdateDBTable(DataSet data, string tableName)
           {
                if (!noDbUpdate)
                {
                    ReportProgress(100, "Updating DB");                    // update db
                   SqlDataAdapter adapter = CalibrationDB.CreateCalibrationAdapter(connection);
                   adapter.Update(data, tableName);
                }
            }    DataSet calibrationData = CalibrationDB.CreateCalibrationDataSet();
    DataRow row = calibrationData.Tables[CalibrationDB.CALIBRATION_TABLE].NewRow();    row[CalibrationDB.COL_PROCESS_ID] = processID;
    row[CalibrationDB.COL_TYPE] = CalibrationDB.CAL_TYPE_VERIFY;
    row[CalibrationDB.COL_ITERATION] = 0;
    row[CalibrationDB.COL_FREQ] = freq[freqIndex];
    row[CalibrationDB.COL_CHANNEL] = channel;
    row[CalibrationDB.COL_ATTENUATION] = attenuation[freqIndex, GetAntenna(channel)];
    row[CalibrationDB.COL_CAL_WARMUP] = param.CAL_WARM_UP_DELAY / 1000;
    row[CalibrationDB.COL_VER_WARMUP] = param.VER_WARM_UP_DELAY / 1000;
    row[CalibrationDB.COL_POWER] = (uint)Math.Round(verifyExpectPower * 10);
    row[CalibrationDB.COL_POUT] = Math.Round(measuredPower,2);
    row[CalibrationDB.COL_GAIN] = gain;
    row[CalibrationDB.COL_PASS] = pass;    calibrationData.Tables[CalibrationDB.CALIBRATION_TABLE].Rows.Add(row);    UpdateDBTable(calibrationData, CalibrationDB.CALIBRATION_TABLE); //更新事先定义好的字符串:
        private static readonly string CALIBRATION_SELECT_CMD = "SELECT * FROM dbo.PA_CAL";        public static readonly string CALIBRATION_TABLE = "PA_CAL";        public static readonly string COL_PROCESS_ID = "ProcessID";
        public static readonly string COL_TYPE = "Type";
        public static readonly string COL_ITERATION = "Iteration";
        public static readonly string COL_FREQ = "TestFrequency";
        public static readonly string COL_CHANNEL = "TestChannel";
        public static readonly string COL_POUT = "Pout";
        public static readonly string COL_GAIN = "Gain";
        public static readonly string COL_POWER = "RequestedPower";
        public static readonly string COL_ATTENUATION = "Attenuation";
        public static readonly string COL_CAL_WARMUP = "CalWarmup";
        public static readonly string COL_VER_WARMUP = "VerWarmup";
        public static readonly string COL_PASS = "PassCode"; 
 
服务器端PA_CAL表有以下列:
 ProcessID Type Tteration TestChannel TestFrequency Attenuation CalWarmup VerWarmup RequestedPower Pout Gain PassCode ,没有定义主键,环境是windowsXP系统,数据库为microsoft sql 2008,程序编译运行无错,可是在服务器端看不到新插入的记录,纠结两个星期未找到原因,请好心人帮忙看看,谢谢!