📄 form1.cs
字号:
{
MessageBox.Show("目前没有连接任何数据库");
}
}
private void DisConn_Click(object sender, System.EventArgs e)
{
try
{
MyOleConn.Close( );
MyOleConn.Dispose( );
bIsConnected = false;
}
catch
{
}
}
private void XmlBuild_Click(object sender, System.EventArgs e)
{
//在当前目录的Debug下将本数据库写成MyXmlDBDesciption.xml文件
MyDataSet.WriteXml("MyXmlDBDesciption.xml");
//然后将所写的MyXmlDBDesciption.xml文件显示在MessageBox中以证明成功书写
string XmlStr = MyDataSet.GetXml();
MessageBox.Show(XmlStr);
//最后从所写的MyXmlDBDesciption.xml文件中读取数据库内容恢复程数据库表读取到
//的表另外存于新建的DataSet对象MyXmlDataSet中,并作为数据源在DataGrid控件
//中显示,另外创建DataSet对象,目的是说明重新读取而不是原来已经读到的数据
DataSet MyXmlDataSet = new DataSet();
MyXmlDataSet.ReadXml("MyXmlDBDesciption.xml");
dataGrid1.SetDataBinding(MyXmlDataSet, "teacherinfo");
}
private void MulQuery_SelectedIndexChanged(object sender, System.EventArgs e)
{
int CurrentIndex = MulQuery.SelectedIndex;
if (bIsConnected == false)
{
MessageBox.Show("目前没有连接任何数据库或者没有读取数据库数据");
return;
}
MulTableQuery(CurrentIndex+1);
}
private void MulTableQuery(int index)
{
int i = 0;
string [] CourseStr = {"","","","","",""};
DataTable CurrentTable = MyDataSet.Tables[0];
string SQLStr = "";
//string SQLStr = "SELECT * FROM teacherinfo";
// MyDataAdapter.SelectCommand = new OleDbCommand(SQLStr,MyOleConn);
DataView myView;
string TIDStr = "";
switch (index)
{
case 1:
myView = new DataView(CurrentTable,"PostTitle = '教授'",
"PostTitle", DataViewRowState.CurrentRows);
foreach (DataRowView myDrv in myView)
{
TIDStr = myDrv[0].ToString();
CurrentTable = MyDataSet.Tables[3];
DataView myView1 = new DataView(CurrentTable, "TID = "+"'"+TIDStr+"'",
"TID", DataViewRowState.CurrentRows);
SQLStr = TIDStr + "号 " +myDrv[3].ToString()+myDrv[2].ToString();
foreach (DataRowView myDrv1 in myView1)
{
SQLStr = SQLStr + myDrv1[2] + " " + myDrv1[3] + " " + myDrv1[4] + " " + myDrv1[5];
CourseStr[i++] = SQLStr;
}
}
listBox3.DataSource = CourseStr;
break;
case 2:
/*myView = new DataView(CurrentTable,"PostTitle = '副教授'",
"PostTitle", DataViewRowState.CurrentRows);
foreach (DataRowView myDrv in myView)
{
TIDStr = myDrv[0].ToString();
CurrentTable = MyDataSet.Tables[3];
DataView myView1 = new DataView(CurrentTable, "TID = "+"'"+TIDStr+"'",
"TID", DataViewRowState.CurrentRows);
SQLStr = TIDStr + "号 " +myDrv[3].ToString()+myDrv[2].ToString();
foreach (DataRowView myDrv1 in myView1)
{
SQLStr = SQLStr + myDrv1[2] + " " + myDrv1[3] + " " + myDrv1[4] + " " + myDrv1[5];
CourseStr[i++] = SQLStr;
}
}
listBox3.DataSource = CourseStr;*/
/* SQLStr = "SELECT TID, LastName FROM teacherinfo Where PostTitle = '副教授'";
DataRow [] foundRow = CurrentTable.Select(SQLStr);
foreach (DataRow myRow in foundRow)
{
TIDStr = myRow[1].ToString();
SQLStr = TIDStr + "号 " +myRow[3].ToString()+myRow[2].ToString()+" ";
DataRow [] foundRow1 = MyDataSet.Tables["teacherclass"].Select( "SELECT FROM teacherclass WHERE ITD = myRow[1]");
foreach (DataRow myRow1 in foundRow1)
{
SQLStr = SQLStr + myRow1[2] + " " + myRow1[3] + " " +myRow1[4] + " " + myRow1[5];
CourseStr[i++] = SQLStr;
}
}
listBox3.DataSource = CourseStr;*/
break;
// case 1:
// break;
}
//DataRow [] foundrows = CurrentTable.Select(SQLStr);
/*DataRelation ProfessorCourseRel = MyDataSet.Relations.Add("ProfessorCourse",
MyDataSet.Tables[0].Columns["TID"], MyDataSet.Tables[3].Columns["TID"]);*/
}
private void DeleteB_Click(object sender, System.EventArgs e)
{
CurrentModifyTable = (DataTable)dataGrid1.DataSource;
// int i = dataGrid1.CurrentCell.RowNumber;
// CurrentTable.Rows[i].Delete( );
CurrentModifyTable.Rows[0].Delete( ); //删除第一条记录
ModifyB.Enabled = false;
}
private void ReceiveB_Click(object sender, System.EventArgs e)
{
try
{
CurrentModifyTable.AcceptChanges( );
}
catch
{
}
}
private void RejectB_Click(object sender, System.EventArgs e)
{
try
{
CurrentModifyTable.RejectChanges( );
}
catch
{
}
}
private void ModifyB_Click(object sender, System.EventArgs e)
{
CurrentModifyTable = MyDataSet.Tables[0];
DataRow myDataRow = CurrentModifyTable.Rows[0];
myDataRow.BeginEdit();
myDataRow[6] = "没有职称";
myDataRow.EndEdit();
// MyDataSet.Tables[0].AcceptChanges( );
// MyDataAdapter.Update(MyDataSet, "teacherinfo");
// dataGrid1.SetDataBinding(MyDataSet.Tables[0], null);
}
private void InsertB_Click(object sender, System.EventArgs e)
{
//首先设置主键,用于查询所要添加的行是否已经存在
DataColumn [] keys = new DataColumn[2];
keys[0] = MyDataSet.Tables[0].Columns["TID"];
MyDataSet.Tables[0].PrimaryKey = keys;
DataRow findRow = MyDataSet.Tables[0].Rows.Find(10);
if (findRow != null)
{
MessageBox.Show("要添加的工号为10的教师已经存在");
return;
}
//如果不存在,然后添加
CurrentModifyTable = MyDataSet.Tables[0];
DataRow addRow = MyDataSet.Tables[0].NewRow( );
addRow[1] = 10; addRow[2] = "电"; addRow[3] = "赵";
addRow[4] = 202;addRow[5] = 124356; addRow[6] = "讲师";
MyDataSet.Tables[0].Rows.Add( addRow );
}
private void ResultB_Click(object sender, System.EventArgs e)
{
MessageBox.Show(CurrentModifyTable.ToString());
MyDataAdapter.Update(MyDataSet, CurrentModifyTable.ToString());
}
private void NewTable_Click(object sender, System.EventArgs e)
{
//build new table
string StrTemp = "";
/* try
{
OleDbDataAdapter MyStudentAdapter = new OleDbDataAdapter(
"SELECT SID,Name, FROM studentinfo",MyOleConn);
OleDbCommandBuilder builder = new OleDbCommandBuilder(MyStudentAdapter);
DataRelation [] studentcourseRel = new DataRelation[5];
studentcourseRel[0] = MyDataSet.Relations.Add("classinfo",
MyDataSet.Tables["classinfo"].Columns["Class1"],
MyDataSet.Tables["studentinfo"].Columns["CNO"]);
studentcourseRel[1] = MyDataSet.Relations.Add("classinfo",
MyDataSet.Tables["classinfo"].Columns["CNO"],
MyDataSet.Tables["studentinfo"].Columns["Class2"]);
studentcourseRel[2] = MyDataSet.Relations.Add("classinfo",
MyDataSet.Tables["classinfo"].Columns["CNO"],
MyDataSet.Tables["studentinfo"].Columns["Class3"]);
studentcourseRel[3] = MyDataSet.Relations.Add("classinfo",
MyDataSet.Tables["classinfo"].Columns["CNO"],
MyDataSet.Tables["studentinfo"].Columns["Class4"]);
studentcourseRel[4] = MyDataSet.Relations.Add("classinfo",
MyDataSet.Tables["classinfo"].Columns["CNO"],
MyDataSet.Tables["studentinfo"].Columns["Class5"]);
foreach(DataRow courseRow in MyDataSet.Tables["classinfo"].Rows)
{
StrTemp = "CourseNo:" + courseRow["CNO"]+"Course:"+courseRow["CName"]+"\n";
for (int i = 0; i< 5; i++)
{
foreach(DataRow studentRow in courseRow.GetChildRows(studentcourseRel[i]))
StrTemp = StrTemp + "student name:" + studentRow["SNane"];
}
}
MessageBox.Show(StrTemp);
}
catch
{
MessageBox.Show("Wrong");
}*/
}
private void button1_Click(object sender, System.EventArgs e)
{
//将第一个表的每个字段的属性列出来
dataGrid1.SetDataBinding(MyDataTable[0], null);
//通过执行命令创建一个暂时的表
try
{
MyOleConn.Close();
OleDbCommand nonqueryCommand = MyOleConn.CreateCommand();
MyOleConn.Open();
nonqueryCommand.CommandText =
"CREATE TABLE MyNewTable(Name VARCHAR(30),TestNumber integer, Title VARCHAR(30))";
nonqueryCommand.ExecuteNonQuery();
// create INSERT command with named parameters
nonqueryCommand.CommandText =
"INSERT INTO MyNewTable VALUES (@Name, @Number, @Title)" ;
// add parameters to Command object Parameters collection
nonqueryCommand.Parameters.Add("@Name", OleDbType.VarChar, 30);
nonqueryCommand.Parameters.Add("@Number", OleDbType.Integer);
nonqueryCommand.Parameters.Add("@Title", OleDbType.VarChar, 30);
// prepare INSERT command for repeated execution
nonqueryCommand.Prepare();
// data to be inserted
string[] names = { "Enrico", "Franco", "Gloria", "Horace" } ;
string[] titles = { "女", "男", "男", "女" } ;
int i;
for (i=1; i<=4; i++)
{
nonqueryCommand.Parameters["@Name"].Value = names[i-1];
nonqueryCommand.Parameters["@Number"].Value = i;
nonqueryCommand.Parameters["@Title"].Value = titles[i-1];
}
}
catch (OleDbException ex)
{
MessageBox.Show(ex.ToString());
}
}
private void DataReaderB_Click(object sender, System.EventArgs e)
{
string TableStr = "";
try
{
MyComm = new OleDbCommand("SELECT * FROM teacherinfo",MyOleConn);
MyDataReader.Close();
MyDataReader = MyComm.ExecuteReader();
while (MyDataReader.Read())
{
TableStr = TableStr+MyDataReader[1]+" "+MyDataReader[3]+MyDataReader[2]+ " "
+MyDataReader[6]+"\n";
}
MessageBox.Show(TableStr);
}
catch
{
MessageBox.Show("目前没有连接任何数据库或者没有读取数据库数据");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -