我通过 docker 使用命令创建了服务器:
\ndocker run -d \xe2\x80\x94 name MySQLServer -e \xe2\x80\x98ACCEPT_EULA=Y\xe2\x80\x99 -e \xe2\x80\x98SA_PASSWORD=your_password123\xe2\x80\x99 -p 1433:1433 mcr.microsoft.com/azure-sql-edge
我正在使用 M1 Mac,一切正常。我创建了测试数据库和表。用于服务器可视化的 Studio 我使用 Rider 或 Azure Data Studio。它们都很友好,但我无法从它们获取数据库的连接字符串。我的 .NET 项目中的 appSettings 需要它。我怎样才能找到它?在 Visual Studio 中,我在 DB 的属性中找到了它。在这里我没有看到这样的选项。
\n我正在寻找一种可靠的方法来检查 C# 中给定的 SQL 连接字符串是否显式指定了某个参数,例如“ Encrypt=...”。我尝试使用 解析字符串SqlConnectionStringBuilder,期望它能ContainsKey()告诉我是否指定了某个键,但它不起作用:
System.Data.SqlClient.SqlConnectionStringBuilder x =
new("Data Source=.;Initial Catalog=myDb;Integrated Security=True");
bool encryptSpecified = x.ContainsKey("Encrypt"); // returns true :(
Run Code Online (Sandbox Code Playgroud)
我应该澄清为什么我需要知道Encrypt参数是否被显式指定。在 的当前版本中,的Microsoft.Data.SqlClient默认值为,但之前(中)为。因此,为了确保升级到后应用程序的向后兼容性,我想将参数设置为,除非用户明确指定了它的值。EncrypttrueSql.Data.SqlClientfalseMicrosoft.Data.SqlClientEncryptfalse
[基于与@Charlieface的讨论]
// important: *not* Microsoft.Data.SqlClient.SqlConnectionStringBuilder!
System.Data.SqlClient.SqlConnectionStringBuilder scsb =
new(connectionString);
if (!scsb.Encrypted) scsb.Encrypted = false; // this will explicitly set Encrypt
connectionString = scsb.ConnectionString;
Run Code Online (Sandbox Code Playgroud) https://www.npgsql.org/doc/connection-string-parameters.html
包含错误详细信息 - 启用后,PostgreSQL 错误和通知详细信息将包含在 PostgresException.Detail 和 PostgresNotice.Detail 中。这些可能包含敏感数据。
如果我在 PostgreSQL 的连接字符串中提供“Include Error Detail=True”,我需要关注哪些敏感数据?如果查询本身以异常或错误消息返回,这对我来说没问题,但如果说连接密码以明文形式返回,显然那就不好了。根据此参数有条件地将哪些敏感数据包含在错误中?
刚发现这个,所以我回答了我自己的问题:)
使用逗号,通常使用冒号.这可能是命名实例的问题,因为您似乎需要指定端口,即使它是默认端口1433.
例:
Provider=SQLOLEDB;Data Source=192.168.200.123,1433; Initial Catalog=Northwind; User Id=WebUser; Password=windy"
Run Code Online (Sandbox Code Playgroud) 我有一个连接到数据库的Windows应用程序来读取一些数据.由于数据库是为弹性设置的,因此我的应用程序需要连接到两个数据库中的一个.有人可以指定使用sql server身份验证在连接字符串中指定故障转移伙伴的语法.
任何帮助是极大的赞赏.
我们有一个ASP.NET网站,它使用我们希望能够使用连接字符串的数据库.我们已成功设置DSN以连接到此数据库,但我似乎无法发现连接字符串的正确魔力.
有没有一种直接的方法将DSN中的值转换为连接字符串?我知道,从UI来看,没有明显的答案......每个数据库供应商都提供了一个不同的UI,用于根据需要创建DSN.但是,我希望在UI下面可能只是在幕后创建一个连接字符串,我可以看一下,看看我做错了什么.这有什么希望吗?如果是这样,有关如何获取我需要的信息的任何指示?
(我去了connectionstrings.com试图确保我的连接字符串格式正确,但似乎没有任何工作......这就是为什么我正在尝试这种奇怪的翻译来自dsn机智.)
编辑:我不能清楚的是,我们不希望有DSN条目.我们创建了一个,并暂时使用它,但我们希望能够摆脱它并使用没有 dsn 的连接字符串.
我在web.config中有一个带有SQL Server 2005连接字符串的ASP.Net Web应用程序。
Data Source=ABCSERVER;Network Library=DBMSSOCN;Initial Catalog=myDataBase;
User ID=myUsername;Password=myPassword;
Run Code Online (Sandbox Code Playgroud)
我想在web.config中为诸如法语之类的不同语言指定归类属性
Data Source=ABCSERVER;Network Library=DBMSSOCN;Initial Catalog=myDataBase;
User ID=myUsername;Password=myPassword;Collation=French_CS_AS
Run Code Online (Sandbox Code Playgroud)
但是排序规则字在连接字符串中无效。
在SQL Server 2005连接字符串中用于指定排序规则的正确关键字是什么?
我了解可以在数据库安装期间设置排序规则,也可以更改排序规则。我不想在数据库中永久更改它。但是我希望SQLClient根据应用程序的设置来设置排序规则。我只想在使用SQL Query时使用它
SELECT * FROM TESTTABLE ORDER BY TESTCOLUMN COLLATE French_CS_AS
Run Code Online (Sandbox Code Playgroud)
我试图确保对于给定的连接,该连接的所有命令/查询将"French_CS_AS"基于连接字符串中的属性设置自动使用--而不是更改查询定义
嗯...我真的无法理解这一点.
在web.config我有:
<connectionStrings>
<clear /> <!--- need this to prevent using LocalSqlServer from machine.config or somewhere becouse it is not present when when publish to hosting -->
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-Goaly-20120615111028;Integrated Security=SSPI" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
和
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<!-- I think this line is telling asp.net that I want the membership working agains defaultconnection, and not LocalSqlServer connection????? -->
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers> …Run Code Online (Sandbox Code Playgroud) asp.net entity-framework connection-string asp.net-membership
在我的C#应用程序中,我连接到MySQL数据库并运行10,000个查询.如果我保持与数据库的连接,这些查询大约需要14秒.但是,如果我依赖连接池,我的查询大约需要15秒.(我已多次运行此测试.)
// Connection pooling.
using (var connection = CreateConnection())
{
connection.ConnectionString = ConnectionString;
connection.Open();
Run Code Online (Sandbox Code Playgroud)
网上的大多数样本都使用上面的"连接和关闭"结构.但是,似乎连接池比保持连接慢.所以问题是......
问:我为什么要使用连接池?
我是新手创建连接字符串和应用程序配置文件.我使用一个示例显示使用文件连接到SQL Server CE,这是我不想要的,而是我想连接到SQL Server 2008标准版.
在http://www.connectionstrings.com/sql-server/等几个链接上探索连接字符串时,我发现Connection字符串使用了属性"Data Source =",在某些地方它使用了"Server ="这是安静的混乱.
这是我在应用程序配置文件中的内容.
<connectionStrings>
<add name="ShareManagement"
connectionString="Data Source=localhost"
providerName="System.Data.SqlClient"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我希望有人告诉我需要使用哪些属性以及它们各自的值应该是什么.(我使用默认sa用户作为UserID和密码并使用SQL Server身份验证模式.我的SQL Server数据库安装在我的Visual Studio解决方案/应用程序所在的同一台机器/服务器上).
Ragards.
sql-server ×4
asp.net ×3
c# ×3
.net ×1
ado.net ×1
app-config ×1
docker ×1
dsn ×1
mysql ×1
odbc ×1
postgresql ×1
rider ×1
vb.net ×1