Как определить строку подключения для подключения к SQL Server из приложения Windows? - PullRequest
0 голосов
/ 01 марта 2019

Я веб-разработчик ASP.NET.Я создал приложение Windows для извлечения данных из SQL Server.Вот мой конфиг приложения и файл класса для извлечения данных из SQL Server:

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
  </appSettings>
 <connectionStrings>
  <add name="ConnString" connectionString="Data Source=INFY\SQLEXPRESS;Initial Catalog=NEWBULKSMS;Integrated Security=True"
   providerName="System.Data.SqlClient" />
 </connectionStrings>
</configuration>

Код, который пытается подключиться к SQL Server

using System;
using System.Collections.Generic;
using System.Collections;
using MySql.Data.MySqlClient;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

public class Mysql
{
    public static string ConString = System.Configuration.ConfigurationManager.AppSettings.Get("ConnString");
    public static string InsertResult = "0";
    private static Hashtable paramCache = Hashtable.Synchronized(new Hashtable());
    private static MySqlParameter[] DiscoverSpParameterSet(string spName, bool includeReturnValueParameter)
    {
        using (MySqlConnection cn = new MySqlConnection(Mysql.ConString))
        {
            using (MySqlCommand cmd = new MySqlCommand(spName, cn))
            {
                cn.Open();
                cmd.CommandType = CommandType.StoredProcedure;

                MySqlCommandBuilder.DeriveParameters(cmd);

                MySqlParameter[] discoveredParameters = new MySqlParameter[cmd.Parameters.Count]; ;

                cmd.Parameters.CopyTo(discoveredParameters, 0);

                return discoveredParameters;
            }
        }
    }
}

Это правильный способ подключения к базе данных SQL Server?

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Измените строку подключения, как показано ниже, и вам нужно перейти с MySql на SQL и добавить с помощью System.Data.SqlClient вместо MySql.Data.MySqlClient, который вы уже добавили в свой проект .................

public static string connectionString = WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
public static string InsertResult = "0";
private static Hashtable paramCache = Hashtable.Synchronized(new Hashtable());
private static SqlParameter[] DiscoverSpParameterSet(string spName, bool includeReturnValueParameter)
{
    using (SqlConnection sqlConnection = new SqlConnection(connectionString))
    {
        using (SqlCommand command = new SqlCommand(spName, sqlConnection))
        {
            connection.Open();
            command.CommandType = CommandType.StoredProcedure;
            SqlCommandBuilder.DeriveParameters(command);
            SqlParameter[] discoveredParameters = new SqlParameter[cmcommandd.Parameters.Count];
            discoveredParameters=command.ExecuteNonQuery();
            ccommandn.Close();
            return discoveredParameters;
        }
    }
}
0 голосов
/ 01 марта 2019

Ваша строка подключения выглядит нормально, но ваш код пытается подключиться к SQL Server с использованием классов MySql.Это не верно.Вместо MySqlConnection вы должны использовать SqlConnection, вместо MySqlCommand - SqlCommand и т. Д.

Все классы, начинающиеся с MySql, принадлежат пространству имен MySql.Data.MySqlClient:предназначен для работы с MySql.
Для работы с Sql Server вам нужно использовать классы, начинающиеся с Sql и принадлежащие пространству имен System.Data.SqlClient.

Я бы начал с удаления using MySql.Data.MySqlClient;из верхней части кода, а затем исправьте все ошибки компиляции, заменив классы MySql классами Sql Server.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...