gpt4 book ai didi

c# - 了解连接字符串属性

转载 作者:行者123 更新时间:2023-11-30 22:15:54 26 4
gpt4 key购买 nike

我是 C# 和所有 .net 的新手。我正在尝试使用测试控制台应用程序测试我的 Nhibernate 配置。

这是我的测试控制台应用

class Program
{
static void Main(string[] args)
{
try
{
NHibernateBase NHB = new NHibernateBase();
NHB.Initialize("NHibernate.GuitarStore");
System.Console.WriteLine("NHibernate.GuitarStore assembly initialized.");
System.Console.ReadLine();
}
catch (Exception ex)
{
string Message = ex.Message;
if (ex.InnerException != null)
{
Message += " - InnerExcepetion: " + ex.InnerException.Message;
}
System.Console.WriteLine();
System.Console.WriteLine("***** ERROR *****");
System.Console.WriteLine(Message);
System.Console.WriteLine();
System.Console.ReadLine();
}

}
}

当我运行上面的程序时出现错误:

***** ERROR *****
Login failed for user 'BUGZILLA\Silon'.

这是我的 app.config 中的连接字符串

connectionString="Data Source=localhost;Initial Catalog=myGuitarStore;Integrated Security=True

我认为它与连接字符串的集成安全部分有关。

问题是我不理解连接字符串中的属性(及其含义),而且我似乎找不到任何足够简单地解释它们的文章。

----以防万一您需要它来理解问题,这是 NHibernateBase 类

 public class NHibernateBase
{
private static Configuration Configuration { get; set; }
protected static ISessionFactory SessionFactory { get; set; }
private static ISession session = null;
private static IStatelessSession statelessSession = null;

public static Configuration ConfigureNHibernate(string assembly)
{
Configuration = new Configuration();
Configuration.AddAssembly(assembly);
return Configuration;
}

public void Initialize(string assembly)
{
Configuration = ConfigureNHibernate(assembly);
SessionFactory = Configuration.BuildSessionFactory();
}

public static ISession Session
{
get
{
if (session == null)
{
session = SessionFactory.OpenSession();
}
return session;
}
}

public static IStatelessSession StatelessSession
{
get
{
if (statelessSession == null)
{
statelessSession = SessionFactory.OpenStatelessSession();
}
return statelessSession;
}
}

public IList<T> ExecuteICriteria<T>()
{
using (ITransaction transaction = Session.BeginTransaction())
{
try
{
IList<T> result = Session.CreateCriteria(typeof(T)).List<T>();
transaction.Commit();
return result;
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
}

最佳答案

Integrated Security=True 只是意味着您正在使用 Windows 身份验证进行身份验证,而不是传递您的用户 ID 和密码并通过 sql server 本身进行身份验证。如果您不进行 Windows 身份验证,那么您可以简单地将用户 ID 和密码作为连接字符串的一部分传递,请参阅 ConnectionStrings.com对于其他连接字符串格式 hat 工作。

你也可以看到这个MSDN描述每个连接字符串属性的文章

关于c# - 了解连接字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17730529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com