| 
 解决导入中文SQL数据乱码问题  
我的第一篇博文  
小弟是做.net的 ,菜鸟一名  
开发环境vs2008+sql 2005  
问题重现:通过ADO.NET 导入txt文件到数据库指定表格,中文数据全部变成乱码:����ʡ��ͨ��  
private void button1_Click(object sender, EventArgs e)         {             if (openFileDialog1.ShowDialog() == DialogResult.OK)//如果选中文件             {                 using (FileStream filestreams = File.OpenRead(openFileDialog1.FileName))//获得导入文件的文件名                 {                     using (StreamReader streamereader = new StreamReader(filestreams))                     {//使用 StreamReader 读取标准文本文件的各行信息,  Encoding.GetEncoding("gb2312")的编码方式防止汉字乱码                         string line = null;                         while ((line = streamereader.ReadLine()) != null)                         {//如果读入数据不为空                             string[] strs = line.Split(',');                             string  id = strs[0];                             string name = strs[1];                             string sex = strs[2];                             string sfz = strs[3];                             string birth = strs[4];                             string syd = strs[5];                             using (SqlConnection conn = new SqlConnection("server=.;database=DB1;Integrated security=true"))                             {                                 conn.Open();                                 using (SqlCommand cmd = conn.CreateCommand())                                 {                                     cmd.CommandText = "insert into Student(学号,姓名,性别,身份证号,生日,生源地) values(@Id,@Name,@Sex,@Sfz,@Birth,@Syd);";                                     cmd.Parameters.Add(new SqlParameter("Id",id));                                     cmd.Parameters.Add(new SqlParameter("Name",name));                                     cmd.Parameters.Add(new SqlParameter("Sex", sex));                                     cmd.Parameters.Add(new SqlParameter("Sfz", sfz));                                     cmd.Parameters.Add(new SqlParameter("Birth", birth));                                     cmd.Parameters.Add(new SqlParameter("Syd", syd));                                     cmd.ExecuteNonQuery();  
                                }                             }                         }                     }                 }                 MessageBox.Show("c");             }         }     }  
   
解决方法:查了各种解决办法   
最后没想到 简单的让人吐血:字符编码问题,只需把   
 using (FileStream filestreams = File.OpenRead(openFileDialog1.FileName))//获得导入文件  
增加为  
using (StreamReader streamereader = new StreamReader(filestreams,Encoding.GetEncoding("gb2312")))  |