c#數(shù)據(jù)庫(kù)與TXT導(dǎo)入導(dǎo)出的實(shí)例
更新時(shí)間:2013年04月24日 16:07:31 作者:
最近剛學(xué)完ADO.NET,做了個(gè)數(shù)據(jù)導(dǎo)入導(dǎo)出的題目,是將txt中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),然后將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到txt中,這里說(shuō)的數(shù)據(jù)的格式是“tom|23”,tom指名字,23指年齡。廢話(huà)也不多說(shuō)了,大家直接看代碼。
復(fù)制代碼 代碼如下:
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
using (FileStream fs = File.OpenRead(openFileDialog1.FileName))
{
using (StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("GB2312")))
{
//<span style="color:#3333ff;">必需設(shè)置字符編碼System.Text.Encoding.GetEncoding("GB2312"),
不然string name = arr[0]中的name就是亂碼</span> using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename='|DataDirectory|\dd.mdf';
Integrated Security=True;User Instance=True"))
{
//<span style="color:#3333ff;">DataDirectory指的是數(shù)據(jù)庫(kù)的絕對(duì)路徑,winForm里面的Program.cs必需添加代碼,否則是.NET是找到的數(shù)據(jù)庫(kù)是有問(wèn)題的,實(shí)在不懂可以去博客園自己去看看why</span>
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "insert into T_Persons values(@Name,@Age)";
string line = "";
while ((line = sr.ReadLine()) != null)
{
string[] arr = line.Split('|');
string name = arr[0];
int age = Convert.ToInt32(arr[1]);
cmd.Parameters.Clear();//別忘了
cmd.Parameters.Add(new SqlParameter("Name", name));
cmd.Parameters.Add(new SqlParameter("Age", age));
cmd.ExecuteNonQuery();
}
}
}
}
}
MessageBox.Show("txt導(dǎo)入數(shù)據(jù)庫(kù)成功!");
}
}
private void button2_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
using (FileStream fs = File.OpenWrite(saveFileDialog1.FileName))
{
using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312")))
{
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename='|DataDirectory|\dd.mdf';Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Persons";
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
string name = sdr.GetString(sdr.GetOrdinal("Name"));
int age = sdr.GetInt32(sdr.GetOrdinal("Age"));
string line =name+"|"+age;
sw.WriteLine(line);
sw.Flush();
}
}
}
}
}
}
MessageBox.Show("導(dǎo)出數(shù)據(jù)到txt成功!");
}
}
</span>
這是要在Program.cs文件中添加的代碼,它只對(duì)winForm和win控制臺(tái)有效:
復(fù)制代碼 代碼如下:
static void Main()
{
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
相關(guān)文章
C#交錯(cuò)數(shù)組知識(shí)點(diǎn)分析
在本篇文章里小編給大家整理的是關(guān)于C#交錯(cuò)數(shù)組知識(shí)點(diǎn)分析,需要的朋友們參考下。2019-11-11
System.Data.OleDb.OleDbException: 未指定的錯(cuò)誤的完美解決方法
本文給大家?guī)?lái)三種有關(guān)System.Data.OleDb.OleDbException: 未指定的錯(cuò)誤的完美解決方法,每種方法都很不錯(cuò),需要的朋友可以參考下2016-09-09
c# String擴(kuò)展 讓你在PadLeft和PadRight時(shí)不再受單雙字節(jié)問(wèn)題困擾
這篇文章主要介紹了c# String擴(kuò)展 讓你在PadLeft和PadRight時(shí)不再受單雙字節(jié)問(wèn)題困擾,需要的朋友可以參考下2020-04-04
詳解C#數(shù)據(jù)類(lèi)型及其轉(zhuǎn)換
這篇文章主要介紹了C#數(shù)據(jù)類(lèi)型及其轉(zhuǎn)換詳解,在C#中,數(shù)據(jù)類(lèi)型可以分為幾種類(lèi)型,今天小編通過(guò)本文給大家詳細(xì)介紹,需要的朋友可以參考下2020-07-07
C#數(shù)據(jù)結(jié)構(gòu)之隊(duì)列(Quene)實(shí)例詳解
這篇文章主要介紹了C#數(shù)據(jù)結(jié)構(gòu)之隊(duì)列(Quene),結(jié)合實(shí)例形式較為詳細(xì)的講述了隊(duì)列的功能、原理與C#實(shí)現(xiàn)隊(duì)列的相關(guān)技巧,需要的朋友可以參考下2015-11-11

