注:相对MySQl,我更喜欢SQL Server,所以这次作业我直接用SQL Server数据库做。
目的:1.掌握SQL Server数据库的使用方法。
2.掌握C#操作SQL Server数据库的方法。
3.了解C#操作其他数据库的方法。
作业要求:1.SQL Server数据库的基本操作,包括如下两个工作:
(1)在SQL Server数据库中插入两个文件中的数据(List_Class1.txt,List_Class1_Submit.xls,点击 下载)。
(2)利用SQL命令查找所有出现在“List_Class1”中,未出现在“List_Class1_Submit”的学生名单,并 保存或输出(截图)。
2. C#操作SQL Server数据库。
(1)连接作业1中建立的数据库中的相关的表(table),显示在DataGridView控件中。
(2)C#语言编程实现数据库的插入、删除、修改某一条或若干条记录。
作业要求1:第一步:导入数据源
导入结果如下图所示:
同理导入Excel表,
查找所有出现在“List_Class1”中,未出现在“List_Class1_Submit”的学生名单的语句及结果如下:
作业要求2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace consqldemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Check按键--选择全部记录
private void Checkbtn_Click(object sender, EventArgs e)
{ string connectString = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter("select * from Sheet1", sqlCnt);
DataSet myDataSet = new DataSet(); // 创建DataSet
myDataAdapter.Fill(myDataSet, "Student"); // 将返回的数据集作为“表”填入DataSet中,表名可以与数据库真实的表名不同,并不影响后续的增、删、改等操作
DataTable myTable = myDataSet.Tables["Student1"];
foreach (DataRow myRow in myTable.Rows)
{
foreach (DataColumn myColumn in myTable.Columns)
{
Console.WriteLine(myRow[myColumn]); //遍历表中的每个单元格
}
}
myDataSet.Dispose(); // 释放DataSet对象
myDataAdapter.Dispose(); // 释放SqlDataAdapter对象
sqlCnt.Close(); // 关闭数据库连接
sqlCnt.Dispose(); // 释放数据库连接对象
}
//Insert按键--插入记录
private void Insertbtn_Click(object sender, EventArgs e)
{ string connectString = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter("select * from Sheet1", sqlCnt);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "Student");
DataTable myTable = myDataSet.Tables["Student2"];
// 添加一行
DataRow myRow = myTable.NewRow();
myRow["学号"] = "201211672127";
myRow["姓名"] = "谢婉琪";
myRow["组别"] = "1";
myRow["作业网址"] = "http://blog.youkuaiyun.com/yihuayaocao/article/details/46563855";
myTable.Rows.Add(myRow);
// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "Student");
myDataSet.Dispose(); // 释放DataSet对象
myDataAdapter.Dispose(); // 释放SqlDataAdapter对象
sqlCnt.Close(); // 关闭数据库连接
sqlCnt.Dispose(); // 释放数据库连接对象
}
//Update按键--更新学号为201211672127的记录
private void Updatebtn_Click(object sender, EventArgs e)
{ string connectString = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter("select * from Sheet1", sqlCnt);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "Student");
// 修改DataSet
DataTable myTable = myDataSet.Tables["Student"];
foreach (DataRow myRow in myTable.Rows) {
myRow["学号"] = myRow["学号"] + "201211672126";
}
// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "Student");
myDataSet.Dispose(); // 释放DataSet对象
myDataAdapter.Dispose(); // 释放SqlDataAdapter对象
sqlCnt.Close(); // 关闭数据库连接
sqlCnt.Dispose(); // 释放数据库连接对象
}
//Delete按键--删除学号为201200000000的记录
private void Deletebtn_Click(object sender, EventArgs e)
{
string connectString = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter("select * from product", sqlCnt);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "Student");
// 删除第一行
DataTable myTable = myDataSet.Tables["Sheet1"];
myTable.Rows[0].Delete();
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(myDataAdapter);
myDataAdapter.Update(myDataSet, "Student");
myDataSet.Dispose(); // 释放DataSet对象
myDataAdapter.Dispose(); // 释放SqlDataAdapter对象
sqlCnt.Close(); // 关闭数据库连接
sqlCnt.Dispose(); // 释放数据库连接对象
}
}
时间比较赶,稍后我会整理一遍代码!