将txt 、LOG文件导入数据库中,中文也不会出现乱码

        private void btnTxtToTable_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.txtFileName.Text.Trim()))
            {
                MessageBox.Show("请选择要导入表中的LOG文件!");
                return;
            }

            SqlConnection conn = null;
            SqlCommand cmd;
            StreamReader sr = null;
            try
            {

        //        conn = new SqlConnection("Data Source="+this.txtIpAddress.Text.Trim()+";Initial Catalog="+this.txtDbName.Text.Trim()+";"
        //+ "Integrated Security=SSPI;user id=" + this.txtUserName.Text.Trim() + ";password=" + this.txtPassword.Text.Trim() + ";");
                //conn = new SqlConnection("initial catalog=" + this.txtIpAddress.Text.Trim() + ";Server="
                //    + this.txtDbName.Text.Trim() + ";user id=" + this.txtUserName.Text.Trim() + ";password=" + this.txtPassword.Text.Trim() + ";");

                string sql = "Data Source=" + this.txtIpAddress.Text.Trim() + ";Initial Catalog="
                    + this.txtDbName.Text.Trim() + ";User ID=" + this.txtUserName.Text.Trim() + ";password=" + this.txtPassword.Text.Trim() + ";";
                conn = new SqlConnection(sql);
               
                conn.Open();

 

                sr   =   new   StreamReader(new   FileStream( this.txtFileName.Text.Trim(),   FileMode.Open,   FileAccess.Read),   System.Text.Encoding.GetEncoding("UTF-8"));

 

                string insertCmd = "insert   into   LogInfo   values   (@LDate,   @LTime,   @LPage , @LUser , @LIP  , @LMessage) ";
                        
               
                string   []   split   =   null;
                 
                string   strTemp   =   sr.ReadLine();
                        while(strTemp   !=   null)
                        {
                            split = strTemp.Split();

                            cmd = new SqlCommand(insertCmd, conn);

                            cmd.Parameters.Add("@LDate ", SqlDbType.SmallDateTime).Value = split[0];
                            cmd.Parameters.Add("@LTime ", SqlDbType.VarChar).Value = split[1];
                            cmd.Parameters.Add("@LPage ", SqlDbType.VarChar).Value = split[2];

                            cmd.Parameters.Add("@LUser ", SqlDbType.VarChar).Value = split[3];
                            cmd.Parameters.Add("@LIP ", SqlDbType.VarChar).Value = split[4];
                            cmd.Parameters.Add("@LMessage ", SqlDbType.VarChar).Value = split[5];

                            cmd.ExecuteNonQuery();
                           
                            strTemp   =   sr.ReadLine();
                        }

                MessageBox.Show("成功导入表中!"  );
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (sr != null) {
                    sr.Close();
                }
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }

你可能感兴趣的:(C#,winform)