.Net C # как подключиться к внешней базе данных SQL Server?OleDb или другое? - PullRequest
5 голосов
/ 01 сентября 2011

Привет, я хотел бы знать, как мне следует подключиться к внешней базе данных SQL Server в C #, .NET?

Например, если у меня есть параметры:

Информация SQL

  • URL для доступа к базе данных (также через браузер): Sqlweb.companyname.com
  • Имя пользователя базы данных: имя пользователя
  • Сервер: Dcms-xxx
  • Имя базы данных: имя_базы_данных
  • пароль базы данных: пароль

?

Я знаю, как подключиться к внутренней сети: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.AppDomain.CurrentDomain.BaseDirectory + "..\\Files\\MapPlaces\\Database.mdb;";

А как насчет внешнего?

Я пробовал:

 string nowConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Sqlweb.companyname.com;Initial Catalog = databaseName; User Id = Username; Password = Password;";

System.Data.OleDb.OleDbConnection dbcon = new System.Data.OleDb.OleDbConnection(nowConString);

string sql = "SELECT * FROM XXXTable";

dbcon.Open();

System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql, dbcon);

System.Data.OleDb.OleDbDataReader reader;

reader = cmd.ExecuteReader();

ScriptStuff.Append("Reader created!<br/>");

while (reader.Read())
{
    string companyName = reader.GetValue(1).ToString();

    ScriptStuff.Append(companyName+"<br/>");

}

Не сработало!Спасибо за вашу помощь!

Отредактировано из комментариев:

Да, это была моя ошибка, спасибо.Поскольку первым был доступ, а ДА вторым - SQL Server.И это SQL Server 2005. Но я новичок в .net и все такое ... Я нашел первый и второй в этом connectionstring.com, но я не мог найти или понять, как использовать это для этого ...

Не могли бы вы помочь, и просто опубликовать дырочку?Спасибо - Vilius 7 минут назад

Я имею в виду, мне все еще нужно использовать OleDB?должно быть "Provider = Microsoft.Jet.OLEDB.4.0;"в этой строке подключения?Куда мне отправлять что (сервер (тот Dcms-xxx) или URL сервера sql (sqlweb.companyname.com))?СПАСИБО ЗА ВАШУ ПОМОЩЬ !-

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Я бы добавил строку подключения в свое приложение / web.config.

<connectionStrings>
    <add name="AspnetdbConnectionString"
        connectionString="Data Source=<databaseadress>;Initial Catalog=<database>;User Id=<user>;Password=password>"
        providerName="System.Data.SqlClient"
    />
</connectionStrings>

В приведенном выше примере показано, как указать строку подключения для подключения MSSQL, а ниже приведен способ использования этой строки подключения.

 using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AspnetdbconnectionString"].ConnectionString))
        {
            cn.Open();
            using (SqlCommand cm = cn.CreateCommand())
            {
                cm.CommandType = CommandType.Text;
                cm.CommandText = "SELECT * FROM ...";
                using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
                {
                    while (dr.Read())
                    {
                        // do stuff
                    }
                }
            }
        }
0 голосов
/ 01 сентября 2011

Я очень рекомендую взглянуть на:

http://www.connectionstrings.com/

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

0 голосов
/ 01 сентября 2011

Вы уверены, что это база данных SQL Server, к которой вы пытаетесь подключиться?
Ваш "внутренний" пример подключается к базе данных Microsoft Access (поставщик OLEDB и расширение файла базы данных .mdb)

Если ваша внешняя база данных действительно является базой данных SQL Server, рекомендуется использовать SqlConnection, SqlDataReader и т. Д. Вместо OleDbConnection и т. Д.
Или, если вы действительно хотите использовать OleDb, вам нужна другая строка подключения.
См. Connectionstrings.com (для SQL Server 2008 , 2005 или 2000 , в зависимости от того, к чему вы пытаетесь подключиться).

...