1、工艺管理数据表绑定在GridView控件中,ASP.NET实现对某一列不可编辑
protected void myGD1_RowEditing(object sender, GridViewEditEventArgs e)//编辑信息
{
myGD1.EditIndex = e.NewEditIndex;//获取编辑行的索引或行号
GetData(SelectSQL);//绑定数据库
//myGD1.Columns[23].ReadOnly = true;//1失败,无ReadOnly属性
//myGD1.Rows[e.NewEditIndex].Cells[23].ReadOnly = true; //2失败,无ReadOnly属性
//myGD1.SelectedRow.Cells[23].Controls[0].Visible = false;//3失败,超出索引范围:分析可能是因为在该事件中,TextBox控件还未生成
ViewState["EditFlag"] = e.NewEditIndex.ToString();//4记录编辑行的索引
IsEdit = true;//4判断是否为编辑事件,要初始化为false!
}
protected void myGD1_PreRender(object sender, EventArgs e)//4制定行不可编辑
{
if (DDL_Style.SelectedValue=="6"&&IsEdit)//判断执行不可编辑的条件,必须有IsEdit条件,其他条件根据需要添加
{
TextBox TB = (TextBox)myGD1.Rows[Convert.ToInt32(ViewState["EditFlag"].ToString())].Cells[23].Controls[0];//此处让23列不可编辑,可根据需要自行更改
TB.ReadOnly = true;
}
}
2、将Excel原表中的数据插入数据库
将Excel表导入数据,表名为Excel文件名称(M1),然后将M1的数据插入tech_cdfw_sam,其中必须判断是否为数字
use tech_database
begin
insert into tech_cdfw_sam(类型,牌号1,牌号2,外径,内径,始焊转速,焊接转速,焊接压力,摩擦时间,摩擦缩短,顶锻压力,顶锻时间,总缩短量,数据来源)( select [类型]
,[牌号1]
,[牌号2]
,[外径]
,0
,[转速]
,[转速]
,[摩擦压力]
,[摩擦时间]
,[摩擦变形量]
,[顶锻压力]
,[顶锻时间]
,[总变形量]
,[编号]
FROM [M1] where 焊接方法='连续驱动式' and 转速<>'' and isnumeric(外径)=1 and isnumeric(转速)=1
and (isnumeric(摩擦压力)=1 OR 摩擦压力 ='')
and (isnumeric(摩擦时间)=1 OR 摩擦时间 ='')
and (isnumeric(摩擦变形量)=1 OR 摩擦变形量 ='')
and (isnumeric(顶锻压力)=1 OR 顶锻压力 ='')
and (isnumeric(顶锻时间)=1 OR 顶锻时间 ='')
and (isnumeric(总变形量)=1 OR 总变形量 ='') )
end
3、将搜索的数据插入表M1_1中(表M1_1不存在)
select * into M1_1 FROM [M1] where 焊接方法='惯性储能式'
4、焊机压力与焊接压力转换
use tech_database
update tech_cdfw_sam set 焊接压力=13942*焊接压力/(外径*外径-内径*内径) where 图号 is not null
update tech_cdfw_sam set 焊接压力=ROUND(焊接压力,0) where 图号 is not null--四舍五入取整
5、读取数据库数据
Conn.Open();
SQL = "SELECT 焊接转速,焊接速度 from " + user_temp + " where id =1";
sqlCommand = new SqlCommand(SQL, Conn);
SqlDataReader dr;
dr = sqlCommand.ExecuteReader();
while (dr.Read())
{
TB_20.Text = dr["始焊转速"].ToString();
TB_21.Text = dr["焊接转速"].ToString();
TB_22.Text = dr["焊接压力"].ToString();
TB_23.Text = dr["摩擦时间"].ToString();
TB_24.Text = dr["摩擦缩短"].ToString();
TB_25.Text = dr["顶锻压力"].ToString();
TB_26.Text = dr["顶锻时间"].ToString();
TB_20.Text = dr["总缩短量"].ToString();
TB_30.Text = dr["接头屈服强度"].ToString();
TB_31.Text = dr["接头抗拉强度"].ToString();
TB_32.Text = dr["焊接压力"].ToString();
TB_33.Text = dr["焊机型号"].ToString();
TB_34.Text = dr["数据来源"].ToString();
TB_35.Text = dr["备注"].ToString();
TextBox38.Text = dr["备用"].ToString();
}
Conn.Close();
另一种方法:利用 dr.GetFloat(int i);dr.GetString(int i);dr.GetInt(int i);等。
6、搜索表中随机一行数据的[ID], (当有多组数据满足条件时,可以随机抽出一组作为参考)
SELECT TOP 1 ID FROM NPU320_temp order by newid()