katela Ответов: 1

Ошибка Sql: не удалось загрузить файл или сборку 'microsoft.sqlserver.sqlclrprovider, version = 13.100.0.0, culture = neutral, publickeytoken=89845dcd8080cc91'


Хороший день.
Я получаю эту ошибку, я перепробовал все, что предлагалось на форуме, без успеха.
Мое приложение создает файл подключения SQL при нажатии кнопки Сохранить. Это ошибка, которую я получаю:
Не удалось загрузить файл или сборку 'Microsoft. SqlServer.SqlClrProvider, Version = 13.100.0.0, Culture = neutral, PublickeyToken=89845dcd8080cc91 ' или одна из его зависимостей. Система не может найти указанный файл.

Код:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;


private void btnSave_Click(object sender, EventArgs e)
       {
           try
          {
               if (cmbServerName.Text == "")
               {
                   MessageBox.Show("Please Select/Enter Server Name","SQL Server Settings", MessageBoxButtons.OK,MessageBoxIcon.Information);
                   cmbServerName.Focus();
                   return;
               }
               if (cmbAuthentication.SelectedIndex == 1)
               {
                   if (txtUserName.Text == "")
                   {
                       MessageBox.Show("please enter user name", "SQL Server Settings", MessageBoxButtons.OK, MessageBoxIcon.Information);
                      txtUserName.Focus();
                       return;
                   }
                   if (txtPassword.Text == "")
                   {
                       MessageBox.Show("please enter password", "SQL Server Settings", MessageBoxButtons.OK, MessageBoxIcon.Information);
                       txtPassword.Focus();
                       return;
                   }
               }
               Cursor = Cursors.WaitCursor;
               timer1.Enabled = true;
               if (cmbAuthentication.SelectedIndex == 0)
               {
                  con = new SqlConnection(@"Data source= '" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;");
               }
               if (cmbAuthentication.SelectedIndex == 1)
               {
                   con = new SqlConnection(@"Data Source=  '" + cmbServerName.Text.ToString() + "';Initial Catalog=master;User ID=  '" + txtUserName.Text.ToString() + "';Password='" + txtPassword.Text.ToString() + "'");
               }
               con.Open();
               if ((con.State == ConnectionState.Open))
               {
                 //  MessageBox.Show("please enter password", "SQL Server Settings", MessageBoxButtons.OK, MessageBoxIcon.Information);
                   if (MessageBox.Show("It will create the Database and configure the sql server, Do you want to proceed?", "SQL Server Settings", MessageBoxButtons.YesNo , MessageBoxIcon.Information) == DialogResult.Yes)
                   {
                       using (StreamWriter sw = new StreamWriter(Application.StartupPath + "\\SQLSettings.dat"))
                       {
                           if (cmbAuthentication.SelectedIndex == 0)
                           {
                               sw.WriteLine(@"Data Source= '" + cmbServerName.Text.ToString() +"';Initial Catalog=DigitalCourtRollDB;Integrated Security=True");
                               sw.Close();
                           }
                           if (cmbAuthentication.SelectedIndex == 1)
                           {
                               sw.WriteLine(@"Data Source= '" + cmbServerName.Text.ToString() + "';Initial Catalog=DigitalCourtRollDB;User ID='" + txtUserName.Text.ToString()+"' ;Password= '" + txtPassword.Text.ToString() + "'");
                               sw.Close();
                           }
                           CreateDB();
                       }
                   }
                   else {
                       System.Environment.Exit(0);
                   }
               }
               MessageBox.Show("The Database has been created and SQL Server setting has been saved successfully..." + "\r\n" + "Application will be closed,Please start it again", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
               System.Environment.Exit(0);
          }
           catch (Exception ex)
          {
               MessageBox.Show("Unable to connect to sql server" + "\r\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
          }
           finally
           {
              if ((con.State == ConnectionState.Open))
              {
                  con.Close();
               }
           }
       }
       void CreateDB()
       {
           try
           {
               con = new SqlConnection(@"Data source= '"+ cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;");
               con.Open();
               string cb2 = "Select * from sysdatabases where name='DigitalCourtRollDB'";
               cmd = new SqlCommand(cb2);
               cmd.Connection = con;
               rdr = cmd.ExecuteReader();
               if (rdr.Read())
               {
                   con = new SqlConnection(@"Data source='" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;");
                   con.Open();
                   string cb1 = "Drop Database DigitalCourtRollDB";
                   cmd = new SqlCommand(cb1);
                   cmd.Connection = con;
                   cmd.ExecuteNonQuery();
                   con.Close();
                   con = new SqlConnection(@"Data source='" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;");
                   con.Open();
                   string cb = "Create Database DigitalCourtRollDB";
                   cmd = new SqlCommand(cb);
                   cmd.Connection = con;
                   cmd.ExecuteNonQuery();
                   con.Close();
                   using (StreamReader sr = new StreamReader(Application.StartupPath + "\\DBScript.sql"))
                   {
                       st = sr.ReadToEnd();
                       Server server = new Server(new ServerConnection(con));
                       server.ConnectionContext.ExecuteNonQuery(st);
                   }
               }
               else {
                   con = new SqlConnection(@"Data source='" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;");
                   con.Open();
                   string cb3 = "Create Database DigitalCourtRollDB";
                   cmd = new SqlCommand(cb3);
                   cmd.Connection = con;
                   cmd.ExecuteNonQuery();
                   con.Close();
                   using (StreamReader sr = new StreamReader(Application.StartupPath + "\\DBScript.sql"))
                   {
                       st = sr.ReadToEnd();
                       Server server = new Server(new ServerConnection(con));
                       server.ConnectionContext.ExecuteNonQuery(st);
                   }
               }
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
           }
           finally
           {
               if ((con.State == ConnectionState.Open))
               {
                   con.Close();
               }
           }
       }


Кто-нибудь сталкивался с этой проблемой раньше?
Я использую c# Visual Studio 2015. SQL server 2016.

Заранее большое вам спасибо.

Что я уже пробовал:

Я пробовал разные версии экземпляра SQL, SQL 2016 и 2014.
Я пытался запустить код на другом компьютере, на виртуальной машине, но все та же проблема

1 Ответов