如何定义连接字符串以从 Windows 应用程序连接到 SQL 服务器?
How do I define a connection string to connect to SQL Server from a Windows application?
我是一名 ASP.NET 网络开发人员。我创建了一个 Windows 应用程序用于从 SQL 服务器检索数据。这是我的应用程序配置和 class 文件,用于从 SQL 服务器检索数据:
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 服务器的代码
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 服务器数据库的正确方法吗?
您的连接字符串似乎没问题,但您的代码正在尝试使用 MySql 类 连接到 SQL 服务器。这是错误的。您应该使用 SqlConnection
而不是 MySqlConnection
,而不是 MySqlCommand
- SqlCommand
等等。
所有以 MySql
开头且属于 MySql.Data.MySqlClient
命名空间的 类 都旨在与 MySql 一起使用。
要使用 Sql 服务器,您需要使用以 Sql
开头并属于 System.Data.SqlClient
命名空间的 类。
我将从代码顶部删除 using MySql.Data.MySqlClient;
行开始,然后通过将 MySql 类 替换为 Sql Server 类.
像下面那样更改你的连接字符串,你必须从 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;
}
}
}
我是一名 ASP.NET 网络开发人员。我创建了一个 Windows 应用程序用于从 SQL 服务器检索数据。这是我的应用程序配置和 class 文件,用于从 SQL 服务器检索数据:
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 服务器的代码
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 服务器数据库的正确方法吗?
您的连接字符串似乎没问题,但您的代码正在尝试使用 MySql 类 连接到 SQL 服务器。这是错误的。您应该使用 SqlConnection
而不是 MySqlConnection
,而不是 MySqlCommand
- SqlCommand
等等。
所有以 MySql
开头且属于 MySql.Data.MySqlClient
命名空间的 类 都旨在与 MySql 一起使用。
要使用 Sql 服务器,您需要使用以 Sql
开头并属于 System.Data.SqlClient
命名空间的 类。
我将从代码顶部删除 using MySql.Data.MySqlClient;
行开始,然后通过将 MySql 类 替换为 Sql Server 类.
像下面那样更改你的连接字符串,你必须从 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;
}
}
}