Строка подключения к другому ПК - PullRequest
0 голосов
/ 13 февраля 2019

хорошо, я новичок в базе данных, я все еще учусь, поэтому моя локальная база данных sql отлично работает на моем компьютере, где я использую Visual Studio 2012 всякий раз, когда я перемещаю файл, чтобы открыть свой проект на компьютере или ноутбуке моего колледжа, я не могу получитьбаза данных подключена, так как строка подключения для этого компьютера отличается, где мне нужно вручную изменить мою строку, есть ли простое решение для этого?нужна помощь.

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

public partial class adminLogin : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\UsersSuren\Documents\Visual Studio 2012\Projects\Shopee mobile\Shopee mobile\App_Data\shopping.mdf;Integrated Security=True");
    int i;
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void b1_Click(object sender, EventArgs e)
    {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandText = "select * from admin_login where username='"+t1.Text+"' and password='"+t2.Text+"'";
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        i = Convert.ToInt32(dt.Rows.Count.ToString());
        if (i == 1)
        {
            Response.Redirect("testing.aspx");
        }
        else
        {
            l1.Text = "Invalid password or username";
        }

        con.Close();
    }
}

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Замените абсолютный путь тегом метаданных | DataDirectory | см. здесь для получения дополнительной информации об использовании DataDirectory - он внизу.

В вашемна случай, если это, вероятно, будет:

"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\shopping.mdf;Integrated Security=True"

Я бы также предложил перенести такую ​​информацию в файл конфигурации.

0 голосов
/ 13 февраля 2019

Ваш вопрос немного сбивает с толку, но, насколько я понимаю, вы хотите избежать, всегда нужно менять путь строки подключения, потому что проект находится в разных местах, верно?

Вы можете использовать Directory.GetCurrentDirectory(),потому что он получает текущий рабочий каталог приложения, а затем объединяет его со строкой подключения.

Это решит вашу проблему, связанную с необходимостью всегда менять строку подключения вручную на абсолютный путь.

Это будет выглядеть примерно так:

SqlConnection con = new SqlConnection($@"Data Source=(LocalDB)\v11.0;AttachDbFilename={Directory.GetCurrentDirectory()}\Shopee mobile\App_Data\shopping.mdf;Integrated Security=True");
0 голосов
/ 13 февраля 2019

Создайте элемент в app.config, например

<add key="connectionString" value="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\UsersSuren\Documents\Visual Studio 2012\Projects\Shopee mobile\Shopee mobile\App_Data\shopping.mdf;Integrated Security=True"/>

, а затем вызовите его в своем классе adminLogin, например

SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["connectionString"].ToString());

Теперь вы можете изменить соединение в app.config безизменение кода и необходимость его повторной компиляции.

...