代码:
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,程序编译运行无错,可是在服务器端看不到新插入的记录,纠结两个星期未找到原因,请好心人帮忙看看,谢谢!
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,程序编译运行无错,可是在服务器端看不到新插入的记录,纠结两个星期未找到原因,请好心人帮忙看看,谢谢!
解决方案 »
- 求 自定义DataGridViewColumn 怎么写
- 子类继承父类后一定要实现父类的虚成员吗?
- 软件开源
- 求c#的sql server2000的数据库应用实例(图书管理系统)
- 关于c# 中的FileSystemWatcher事件触发问题,从一个文件夹复制到另一文件夹,只让其触发一次新建OnCreate避免同时触发OnChanged
- C#中能否像Linux shell中快速将文件的首行去掉或者将除去首行的其他保存到另外一个文件中?
- windows service访问本地文件的问题?
- 请教一个很简单的问题,谢谢。
- 为什么我的 Vs.net 在 debug 是看不到 WebForm 的变量
- 大神们,急救
- c# 自定义组件属性设置的问题 求解
- C# 串口收发线程问题 界面卡死
插入一模一样的重复数据时,SQL无法区两条记录的区别。
加个字段,做成种子就行了