1、 public class TextFromFile static void Main(string args) int num = 0; int word = 0; string FILE_NAME = .article.txt; if (!File.Exists(FILE_NAME) Console.WriteLine(FILE_NAME + 不存在); Console.ReadLine(); return; StreamReader sr = File.OpenText(FILE_NAME); String input; while (input = sr.ReadLine() != n
2、ull) for (int i = 0; i input.Length; i+) if (inputi = | inputi = ,.) word = 0; else if (word = 0) word = 1; num+; sr.Close(); StreamWriter sw = File.AppendText(FILE_NAME); sw.WriteLine(单词个数: + num); Console.WriteLine(统计完成! sw.Close();2、序列化训练使用BinnaryFormatter进行序列化和反序列化。创建Windows应用程序,名称为WindowsApplic
3、ation。设计表单Form1,界面如下图:通过界面中的控件完成对如下类的序列化: public class ClassToSerialize public int id; public string name; NonSerialized public string Sex;具体要求:单击按钮“序列化”时,当文本框输入不全时,显示“信息输入不全”;否则将所填信息序列化到文件“temp.data”中,并提示“序列化成功!”。单击按钮“反序列化”时,在表单的标签上显示结果,如下图:思考:为什么结果中没有性别信息?代码的编写可参考P128P129代码。using System.ComponentM
4、odel;using System.Data;using System.Drawing;using System.Windows.Forms;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;namespace WindowsFormsApplication public partial class Form1 : Form public Form1() InitializeComponent(); Serializable private void button1_C
5、lick(object sender, EventArgs e) ClassToSerialize myInfo = new ClassToSerialize(); if (textBox1.Text = string.Empty | textBox2.Text = string.Empty) MessageBox.Show(请输入正确的信息! myInfo.id = int.Parse(textBox1.Text); myInfo.name = textBox2.Text; if (radioButton2.Checked) myInfo.Sex = radioButton2.Text; m
6、yInfo.Sex = radioButton1.Text;序列化成功! FileStream fileStream = new FileStream(temp.dat, FileMode.Create); BinaryFormatter b = new BinaryFormatter(); b.Serialize(fileStream, myInfo); fileStream.Close(); private void button2_Click(object sender, EventArgs e), FileMode.Open,FileAccess.Read,FileShare.Read
7、); myInfo = b.Deserialize(fileStream) as ClassToSerialize; label4.Text = 反序列化的结果为:+ myInfo.id + + myInfo.name + + myInfo.Sex; 3、数据库读取训练本实验中使用的连接字符串如下:Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|NORTHWND.MDF;Integrated Security=True;User Instance=True1)使用DataAdapter和DataSet访问数据库创建Windows应
8、用程序,名称为DataBaseLx。当点击“取数据”按钮时,效果如下图(读取数据库“NORTHWND.MDF”中的表“Employees”的三列信息):当点击“生成XML”按钮后,效果如下:“取数据”按钮中的代码参考P144。using System.Data.SqlClient;namespace DataBaseLx DataSet ds = new DataSet(); SqlConnection myConnection = new SqlConnection( SqlDataAdapter customersTableAdapter = new SqlDataAdapter(Sele
9、ct EmployeeID,FirstName,LastName FROM Employees, myConnection); customersTableAdapter.Fill(ds, Employees dataGridView1.DataSource = ds.Tables0; button2.Enabled = true; button1.Enabled = false; ds.Tables0.WriteXml(Employees.xml,XmlWriteMode.IgnoreSchema);生成Employees.xml文件! button2.Enabled = false; pr
10、ivate void Form1_Load(object sender, EventArgs e) 2)使用Command和DataReader访问数据库在项目DataBaseLx中添加表单Form2,运行时显示效果如下图,单击列的头部,观察能否排序。参考P149代码。 public partial class Form2 : public Form2() private void Form2_Load(object sender, EventArgs e) SqlCommand myCommand = new SqlCommand( myConnection.Open(); SqlDataR
11、eader myReader = myCommand.ExecuteReader(); BindingSource bs = new BindingSource(); bs.DataSource = myReader; dataGridView1.DataSource = bs; myReader.Close(); myConnection.Close();3)存储过程的使用在项目DataBaseLx中添加表单Form3,要求使用数据库“NORTHWND.MDF”中的存储过程“Ten Most Expensive Products”查询最贵的10种产品,结果显示在datagridveiw上。运
12、行效果如下图:参考P153代码。 public partial class Form3 : public Form3() private void Form3_Load(object sender, EventArgs e)Select TenMostExpensiveProducts,UnitPrice FROM Products SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(); mySqlDataAdapter.SelectCommand = new SqlCommand(); mySqlDataAdapter.SelectCo
13、mmand.Connection = myConnection; mySqlDataAdapter.SelectCommand.CommandText = Ten Most Expensive Products mySqlDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure; DataSet myDataSet = new DataSet(); mySqlDataAdapter.Fill(myDataSet, Products dataGridView1.DataSource = myDataSet.Tables
14、;4)使用视图进行排序和筛选在项目DataBaseLx中添加表单Form4,界面设计如下图:运行时出现如下画面:在第一个列表框中显示从Employees表中读取的Title字段,用于筛选的条件;第二个列表框中存放条目“EmployeeID,FirstName,LastName,Title”,用于排序的字段;通过单选按钮进行排序方式的选择。点击“确定”按钮后,在下方的DataGridView中显示所选的Title的记录,并按所选的字段按指定的方式进行排序。排序和筛选功能的实现参考P146代码。 public partial class Form4 : public Form4() private
15、 void Form4_Load(object sender, EventArgs e) SqlDataAdapter myAdapter = new SqlDataAdapter(Select distinct title from Employees myAdapter.Fill(ds, Title comboBox1.DataSource = ds.Tables comboBox1.DisplayMember = Select EmployeeID,FirstName,LastName,Title from Employees dataGridView1.DataSource = ds.Tables.DefaultView; ds.Tables.DefaultView.RowFilter = Title= + comboBox1.Text + string mode = Asc mode = Desc if (comboBox2.Text != string.Empty) .DefaultView.Sort = comboBox2.Text + mode;【4】 思考题1、文件流的参数有哪几个?2、什么是序列化和反序列化?3、比较使用DataSet和DataReader来访问数据过程。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1