⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createtable.cs

📁 能对数据库进行维护
💻 CS
📖 第 1 页 / 共 2 页
字号:
		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 + -