📄 createtable.cs
字号:
private string NULLorNOTNULL(string values)
{
string changedValue="";
if (values.Equals("True"))
{
changedValue="NULL";
}
else
changedValue="NOT NULL";
return changedValue;
}
#endregion
#region 执行CreatTablesql,创建表
private void CreateTableEx(string sql)
{
string constr=da.getconnstr();
SqlConnection conn=new SqlConnection(constr);
SqlCommand cmd=new SqlCommand(sql,conn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("创建表成功");
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
}
#endregion]
#region //拼接生成CreatTableSql
private string CreateTableSqlPro()
{
string tablename=this.textBox3.Text.ToString();
string sql="CREATE TABLE [YUY]."+tablename+" (dnteiity int identity NOT NULL PRIMARY KEY";
ArrayList lieming=new ArrayList ();
ArrayList shujuleixing=new ArrayList();
ArrayList shujuchangdu=new ArrayList();
ArrayList yunxukong= new ArrayList();
for (int i=0;i<this.dataGrid1.VisibleRowCount;i++)
{
lieming.Add(dataGrid1[i,0]);
shujuleixing.Add(dataGrid1[i,1]);
shujuchangdu.Add(dataGrid1[i,2]);
yunxukong.Add(NULLorNOTNULL(dataGrid1[i,3].ToString()));
}
for (int j=0;j<dataGrid1.VisibleRowCount;j++)
{
if (shujuleixing[j].ToString().Equals("nvarchar"))
{
sql+=","+lieming[j].ToString()+" "+shujuleixing[j].ToString()+"("+shujuchangdu[j].ToString()+") "+yunxukong[j]+"";
}
else
{
sql+=","+lieming[j].ToString()+" "+shujuleixing[j].ToString()+" "+yunxukong[j]+"";
}
}
sql=""+sql+")";
return sql;
}
#endregion
#region //dataGrid中的表名同textBox中同步
private void textBox3_TextChanged(object sender, System.EventArgs e)
{
dataGrid1.CaptionText=this.textBox3.Text;
}
#endregion
#region //增加一行,并检测是否重复
private void btnAdd_Click(object sender, System.EventArgs e)
{
if (dt!=null)
{
dtadd=dt.Copy();
}
if (textBox3.Text.ToString().Trim()=="")
{
MessageBox.Show("表名不能为空");
return;
}
if (tablename=="") //判断创建还是修改--创建
{
for (int i=0;i<tables.Count;i++)
{
string name=this.tables[i].ToString().Trim();
if (this.textBox3.Text.Trim().Equals(name))
{
MessageBox.Show("数据库中已经存在该表,请修改表名或删除原表");
return;
}
else
continue;
}
}
string a=textBox1.Text.ToString().Trim();
string c=textBox2.Text.ToString().Trim();
string b=comboBox1.SelectedItem.ToString().Trim();
if (a.Equals(""))
{
MessageBox.Show("列名不能为空");
return;
}
if (b.Equals(""))
{
MessageBox.Show("请选择数据类型");
return;
}
if (c.Equals(""))
{
MessageBox.Show("请填写数据长度");
return;
}
if(flagadd==0)//一次没有添加时
{
if (dataGrid1.VisibleRowCount==0)//如果dataGrid中没有数据说明是 创建表,
{
drc=dt.Rows;
DataRow myrow=dt.NewRow();
myrow[0]=this.textBox1.Text.ToString().Trim();
myrow[1]=this.comboBox1.SelectedItem.ToString().Trim();
myrow[2]=this.textBox2.Text.ToString();
myrow[3]=this.checkBox1.Checked;
drc.Add(myrow);
dataGrid1.Refresh();
this.dataGrid1.Enabled=true;
}
else
{
for (int K=0;K<dataGrid1.VisibleRowCount;K++)//dataG中有数据 说明是 修改表
{
if (a.Equals(dataGrid1[K,0].ToString()))//判断列名是否重复
{
MessageBox.Show("该列名已经存在,请更改列名");
return;
}
}
drc=dt.Rows;
DataRow myrow=dt.NewRow(); //添加数据
myrow[0]=this.textBox1.Text.ToString().Trim();
myrow[1]=this.comboBox1.SelectedItem.ToString().Trim();
myrow[2]=this.textBox2.Text.ToString();
myrow[3]=this.checkBox1.Checked;
drc.Add(myrow);
dataGrid1.Refresh();
}
}
else //不在是第一次 按添加按钮
{
if(dataGrid1.VisibleRowCount!=0)
{
for (int i=0;i<dataGrid1.VisibleRowCount;i++)
{
if (a.Equals(dataGrid1[i,0].ToString()))//判断列名是否重复
{
MessageBox.Show("该列名已经存在,请更改列名");
return;
}
}
DataRow myrow=dt.NewRow();
myrow[0]=this.textBox1.Text.ToString().Trim();
myrow[1]=this.comboBox1.SelectedItem.ToString().Trim();
myrow[2]=this.textBox2.Text.ToString();
myrow[3]=this.checkBox1.Checked;
drc.Add(myrow);
dataGrid1.Refresh();
}
else
{
DataRow myrow=dt.NewRow();
myrow[0]=this.textBox1.Text.ToString().Trim();
myrow[1]=this.comboBox1.SelectedItem.ToString().Trim();
myrow[2]=this.textBox2.Text.ToString();
myrow[3]=this.checkBox1.Checked;
drc.Add(myrow);
dataGrid1.Refresh();
}
}
preop=0;
this.dataGrid1.Focus();
this.dataGrid1.Select(flagadd);
this.dataGrid1.CurrentRowIndex=flagadd;
flagadd+=1;
textBox3.ReadOnly=true;
this.btnSav.Enabled=true;
}
#endregion
#region//删除dataGrid中一行事件
private void btnDel_Click(object sender, System.EventArgs e)
{ flagdel+=1;
flagadd-=1;
if (this.dataGrid1.VisibleRowCount==0)
{
MessageBox.Show("请先添加列名");
return;
}
if (dataGrid1.CurrentRowIndex<0)
{
MessageBox.Show("请先选择");
return;
}
DataColumnCollection dcc=dt.Columns;//取得table的列
DataColumn dc=dcc[0];//第一列
DataColumn[] mydc={dc};//转换为可用格式
dt.PrimaryKey=mydc;//主键
string c=dc.ToString();
string s=dataGrid1[dataGrid1.CurrentRowIndex,0].ToString(); //dataGrid的列序号也就是主键的值
DataRow myrow= dt.Rows.Find(s); //找到对应的行
if (MessageBox.Show("您确定要删除吗?","重要提示",MessageBoxButtons.OKCancel)==DialogResult.OK)
{
dtdel = new DataTable();
dtdel=dt.Copy();
preop=1;
// foreach (DataRow row in dt.Rows)
// {
// dtdel.ImportRow(row);
//
// }
// dataGrid2.DataSource=dtdel;
myrow.Delete();//标记为删除
dataGrid1.Refresh();//更新dataGrid
}
else
{
return;
}
// drc.Remove(myrow); //彻底删除
}
#endregion
#region //回复上一次操作 有问题暂时放弃
// private void btnCan_Click(object sender, System.EventArgs e)
// { if ( dt.Rows.Count==1)
// {
// this.textBox3.ReadOnly=false;
// }
// if (dataGrid1.VisibleRowCount==0)
// {
// MessageBox.Show("请先添加数据");
// return;
// }
// else
// {
// if (preop==0)
// {
// addCancle();
// }
// else
// {
// delCancle();
// }
//
// }
////
//// }
// #endregion
// private void delCancle()
// {
// if (dtdel==null)
// {
// MessageBox.Show("请先添加数据");
// return;
// }
// else
// {
// dt.Clear();
// dt=dtdel.Copy();
// dtdel.Clear();
// dataGrid1.DataSource=dt;
// flagdel=flagdel-1;
// }
// }
// private void addCancle()
// {
// if (dtadd==null)
// {
// MessageBox.Show("请先添加数据");
// return;
// }
// else
// {
// dt.Clear();
// dt=dtadd.Copy();
// dtadd.Clear();
// dataGrid1.DataSource=dt;
//// flagadd=flagadd-1;
// }
// }
#endregion
#region //点击保存事件,执行sql修改数据库
private void btnSav_Click(object sender, System.EventArgs e)
{
if (dt==null)
{
MessageBox.Show("请先输入数据");
return;
}
else
{
String CreateTableSql=CreateTableSqlPro();
CreateTableEx(CreateTableSql);
this.Close();
created=true;
}
}
#endregion
private void btnCan_Click(object sender, System.EventArgs e)
{
int i=this.dataGrid1.CurrentRowIndex;
this.dataGrid1[i,0]=this.textBox1.Text.ToString().Trim();
this.dataGrid1[i,1]=this.comboBox1.Text.ToString().Trim();
this.dataGrid1[i,2]=this.textBox2.Text.ToString().Trim();
this.dataGrid1[i,3]=this.checkBox1.Checked;
}
private void CreateTable_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (!created)
{
if (dt.Rows.Count==0)
{
return;
}
else
{
if (MessageBox.Show("是否创建新表?","重要提示",MessageBoxButtons.OKCancel)==DialogResult.OK)
{
String CreateTableSql=CreateTableSqlPro();
CreateTableEx(CreateTableSql);
created=true;
}
else
{
return;
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -