用强类型DataSet重写手机号码归属地查询项目

继续学习杨中科老师的视频哈哈

1.用强类型DataSet比弱类型的DataSet方便很多它内部会自动生成很多代码,不用程序员自己动手去写,而且代码可读性更好。下面我们来看用强类型DataSet来写手机号码归属地查询,首先新建一个windows窗体应用程序,拖入如下控件:

2.新建一个基于服务的数据库dbPhone.mdf,新建一个T_Numbers表,设置如下字段:

3.新建一个数据集DataSetPhone.xsd

4.将T_Numbers表拖入数据集中,添加两个SQL命令,DeleteAll和GetLocationByPhoneNo。

5.DeleteAll的SQL语句:

6.GetLocationByPhoneNo的SQL语句:

7.Form1.cs的代码:

 1 using System;
2 using System.Text;
3 using System.Windows.Forms;
4 using System.Configuration;
5 using System.IO;
6 using queryLocation.DataSetPhoneTableAdapters;
7
8 namespace queryLocation
9 {
10 public partial class Form1 : Form
11 {
12 public Form1()
13 {
14 InitializeComponent();
15 }
16
17 private void btnImport_Click(object sender, EventArgs e)
18 {
19 if (fbdImport.ShowDialog() != DialogResult.OK)
20 {
21 return;
22 }
23 string path = fbdImport.SelectedPath;
24 string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
25
26 string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
27
28 T_NumbersTableAdapter adapter = new T_NumbersTableAdapter();
29 adapter.DeleteAll();
30 //批量数据导入确保在一个连接里,手动打开连接然后插入批量插入数据,最后关闭连接以提升性能
31 adapter.Connection.Open();
32 foreach (string file in files)
33 {
34 string operatorName = Path.GetFileNameWithoutExtension(file);//运营商的名字
35 string[] lines = File.ReadAllLines(file, Encoding.Default);//因为每个文件的内容比较少,所以不用StreamReader,用File就够用了。
36 foreach (string line in lines)
37 {
38 string[] strs = line.Split('-');
39 string startNo = strs[0];
40 string endNo = strs[1];
41 string cityName = strs[2];
42 adapter.Insert(startNo, endNo, operatorName + cityName);
43 }
44 }
45 adapter.Connection.Close();
46 MessageBox.Show("导入成功!");
47 }
48
49 private void btnSearch_Click(object sender, EventArgs e)
50 {
51 T_NumbersTableAdapter adapter = new T_NumbersTableAdapter();
52 queryLocation.DataSetPhone.T_NumbersDataTable table = adapter.GetLocationByPhoneNo(txtPhone.Text);
53 if (table.Rows.Count > 0)
54 {
55 queryLocation.DataSetPhone.T_NumbersRow row = table[0];
56 string name = Convert.ToString(row["Name"]);
57 MessageBox.Show("手机号码归属地:" + name);
58 }
59 else
60 {
61 MessageBox.Show("对不起,查无此号!");
62 }
63 }
64 }
65 }

 

posted @ 2011-12-16 08:26  keepLearning...  阅读(346)  评论(0编辑  收藏  举报