0

我正在运行 asp.mvs 网络应用程序。它已经托管,数据库也由同一托管服务提供商提供。我正在尝试(已经 3 天)使用给定connection string的从数据库传输数据。这是我的方法,我的方法在哪里,connection string. 请您看一下,看看一些潜在的错误。这很烦人,因为我不能做这个简单的事情。

   /// <summary>
    /// Gets connection string of Database
    /// </summary>
    /// <returns>connection string of type const</returns>
    public static string GetConnectionStringOfDatabase()
    {
        try
        {
            string cnc = @"data source=OnlineVertrag.mssql.somee.com;workstation      id=OnlineVertrag.mssql.somee.com;packet size=4096;user id="xxx";pwd="xxx";persist security info=False;initial catalog=OnlineVertrag";
            return cnc;
        }
        catch (Exception ex)
        {
            bool rethrow = ExceptionHelper.Handle(ex, "Business Logic");
            if (rethrow)
            {
                throw;
            }
        }
        return null;
    }




 public bool CheckIfUserIsActive(string username)
        {
            SqlConnection connection = new SqlConnection(SQLDataHelper.GetConnectionStringOfDatabase());

            try
            {
                connection.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = connection;
                cmd.CommandType = System.Data.CommandType.Text;
                cmd.CommandText = @"SELECT IsActive "
                                + "FROM Users "
                                + "WHERE Username = @Username";
                cmd.Parameters.Add(new SqlParameter("@Username", UserName));

                SqlDataReader reader = cmd.ExecuteReader();

                bool isActiveValueFromDataBase = false;

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        isActiveValueFromDataBase = Convert.ToBoolean(reader["IsActive"]);
                        if (isActiveValueFromDataBase == true)
                        {
                            return true;
                        }
                        return false;
                    }
                }

                reader.Close();
            }
4

2 回答 2

1

错误 #1:在公共论坛上发布登录信息。

说真的 - 查看此页面并查看问题编辑历史记录的每个人现在都可以登录到您的数据库。您应该尽快更改密码。

错误 #2:在代码中存储连接字符串。正如您所看到的 - 密码更改可能会出乎意料。最简单的方法:存储在 web.config 中并使用 ConfigurationManager.ConnectionStrings 访问它们:

http://pietschsoft.com/post/2005/12/28/ASPNET-20-How-to-get-a-specific-ConnectionString-from-the-WebConfig-by-name.aspx

可能的错误 #3:尝试“data source=OnlineVertrag.mssql.somee.com;user id=xxx;pwd=xxx;initial catalog=OnlineVertrag”。也许“工作站”和“id”之间的空格是问题所在。

于 2012-05-08T09:55:16.713 回答
0

大卫蒂施勒所说的。

您是否有 SQL Management Studio 或其他可以使用连接字符串进行连接的交互式 SQL 应用程序?至少在 Microsoft SQL Server Management Studio for SQL Server 2008 中,您只需将连接字符串粘贴到“附加连接参数”部分即可。我不相信这在早期版本中存在。

您如何创建一个尝试连接到数据库的页面,然后将 ex.Message 显示为页面的一部分。也许这会告诉你 SQL 客户端库认为什么是错误的。

于 2012-05-08T10:51:39.807 回答