坚持学习是个好习惯.
昨天学习了文件的导入导出自己也模仿着写了一个,因为导入导出都是txt或者doc没有什么难度,直接贴出代码以备后用,然后在网上找找导入导出execl(这应该是最常用的),或者图片什么的,扩展下.
当然现在对ADO.NET的学习深度不够代码不是那么规范,先贴上,看来要抓紧ADO.NET的学习了
实现如下:
//文件导入
private void button1_Click(object sender, EventArgs e)
{
//判断打开对话结果
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//创建文件读取流
using (FileStream fileStream = File.OpenRead(openFileDialog1.FileName))
{
//打开文件流要读取的数据流,一定要用两个参数的构造函数设置读取的编码格式,不然出现乱码;
using (StreamReader streamReader = new StreamReader(fileStream, System.Text.Encoding.Default))
{
SqlConnection sqlconn = new SqlConnection(@"Server=218.198.33.210/;Integrated Security=false;DataBase=DB_Zyyy;User ID=YangShuang;Password=123456;pooling=false");
sqlconn.Open();
//Login.BLL.LoginManager mgr = new Login.BLL.LoginManager();
string line = null;
int i = 0;
using (SqlCommand sqlcmd = sqlconn.CreateCommand())
{
sqlcmd.CommandText = "insert into T_Users(Uname,Upassword,Uemail) values(@Uname,@Upassword,@Uemail)";
while ((line = streamReader.ReadLine()) != null)
{
string[] strs = line.Split('-');
MessageBox.Show(line.ToString());
string name = strs[0];
string password = strs[1];
string email = strs[2];
sqlcmd.Parameters.Add(new SqlParameter("Uname", name));
sqlcmd.Parameters.Add(new SqlParameter("Upassword", password));
sqlcmd.Parameters.Add(new SqlParameter("Uemail", email));
sqlcmd.ExecuteNonQuery();
//清楚sqlcmd的内容,不然每次循环用同一个sqlcmd会造成重复错误
sqlcmd.Parameters.Clear();
i++;
}
}
MessageBox.Show("共插入" + i + "行。");
}
}
}
else
{
MessageBox.Show("读取错误");
}
}
//文件导出
private void button2_Click(object sender, EventArgs e)
{
//打开保存文件对话框
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|wps(*.doc)|*.doc";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//创建文件流
using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
{
//创建数据流
using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
{
//连接数据库
using (SqlConnection sqlconn = new SqlConnection(@"Data Source=./SQLEXPRESS;AttachDbFilename=D:/MSCodes/ASP.NET/UserManager/ToTesting/MyTestDB.mdf;Integrated Security=True;User Instance=True"))
{
sqlconn.Open();
using (SqlCommand sqlcmd =sqlconn.CreateCommand())
{
sqlcmd.CommandText = "select * from My_Users";
//不用sqlconn.CreatCommand()创建命令对话则会报ExecuteReader: Connection 属性尚未初始化。错误
//或者直接用SqlCommand sqlcmd=new SqlCommand(cmdText,sqlconn);实现相同功能
//SqlDataReader抽象类无法继承或者实例化。
SqlDataReader sdr = sqlcmd.ExecuteReader();
while (sdr.Read())
{
int id = sdr.GetInt32(sdr.GetOrdinal("UID"));
string username = sdr.GetString(sdr.GetOrdinal("UNAME"));
string password = sdr.GetString(sdr.GetOrdinal("UPASSWORD"));
string others = sdr.GetString(sdr.GetOrdinal("UMESSAGE"));
string tem = Convert.ToString(id) + "-" + username + "-" + password + "-" + others+"/r/n";
//CR/LF
sw.Write(tem);
sw.Flush();
}
//else
//{
// MessageBox.Show("导出失败");
// return;
//}
sw.Close();
MessageBox.Show("导出成功");
}
}
}
}
}
else
{
MessageBox.Show("操作失败");
}
}