Как я присоединяю базу данных sql server к проекту в C#, для того, чтобы оно я функционировало для всех компьютеров? [закрывшая]

У меня есть проблема с этим типом проектов, я могу создавать проект, но в момент скроллирования моей программы на другом компьютере меня помечает ошибка, ввиду цепи связи (Хороший я не понимаю много тему).

Какие шаги для того, чтобы я не произвелся этот тип ошибок?

3
задан 13.05.2016, 16:58
2 ответа

Я имею по отношению к тебе хорошее соединение (На английском), которое могло бы помогать тебе, в которое ты нуждаешься, как подсказка я говорю тебе, чтобы ты протестировал SQL Server EC, но для того, что ты ищешь, был бы хорошим dynamic attach или то, что Леандро предлагает в Вашем ответе.

Хотя здесь я оставляю тебе пример как делать с SQL Server EC (Соединение в вопрос SO):

Прежде всего, установи SQL Server EC (Если ты не считаешь это установленным), потом продолжи эти шаги и протестируй твое приложение:

  1. Создай новый проект.

  2. Добавь ссылку в System.Data.SqlServerCeProgram Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll в моем персональном компьютере)

  3. Прямой Click в проект в браузере решений, выбирает "Добавлять => Новый элемент...", выбери "Локальную Базу данных" и она назови, как ты желал, пример MyDB.

  4. Он идет создавать новый файл (MyDB.sdf) внутри проекта (DB SQL Server EC)

  5. Прямой Click в базу данных и ее откройся, откроется база данных в "Сервер Эксплорер".

  6. В "Сервер Эксплорер" поверьте новая таблица в базу данных (в примере: MyDB), добавь какие-то подмостки и данные.

И потом протестируй что-то похожее на этот код (он помнит что звонит всегда в директивный орган using):

using System.Data.SqlServerCe;

class Program
{
    static void Main(string[] args)
    {
        using (var cn = new SqlCeConnection("Data Source=MyDB.sdf"))
        {
            cn.Open();
            using (var cmd = cn.CreateCommand())
            {
                cmd.CommandText = "select * from MyTable where Field2 like '%AB%'";
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine("Field1: {0}", reader[0]);
                    }
                }
            }
        }
        Console.ReadKey();
    }
}

Оно было бы должно функционировать везде с этим, приветом!

1
ответ дан 24.11.2019, 14:24
  • 1
    но вопрос использует Скл Сервер не Скл Компакт, - .mdf не .sdf то, что он использует. Для того, чтобы оно функционировало во всех персональных компьютерах, ты должен устанавливать локальную услугу или на централизованном сервере и все присоединились в этот –  Leandro Tuttini 13.05.2016, 17:09
  • 2
    Но Ваш вопрос может ссылаться на то, что я написал, и # 243; alg и # 250; n программа, которая нуждается в том, чтобы сохранять Ваши данные в DB и хочет скроллировать это в любом компьютере, который не был бы его, и #191; Нет? –  NaCl 13.05.2016, 17:12
  • 3
    так как правда тогда не была ясной вопрос, если он использует Скл Сервер, он не имеет ничего общего со Скл Компакт. Если он использовал Скл Сервер также, он мог бы присоединяться без проблем каждый раз, когда у него была инициализировавшая услуга –  Leandro Tuttini 13.05.2016, 17:16

Первое, что ты должен определять,, - если db будет локальным в персональном компьютере пользователя или на централизованном сервере

, Если будет локальным тогда дебет устанавливать Скл Сервер в персональном компьютере пользователя, потом в connection string ты использовал бы

Server=.\SQLExpress;Database=myDataBase;Trusted_Connection=True;

там используйте .\SQLEXpress, если он состоит в том, что ты устанавливаешь Скл Сервер Экспресс, но также его может быть Server=(localdb)\v11.0;

Сейчас, если сервер будет удаленным, первое, что ты должен санкционировать,, - если этот выставляет услугу в сеть

Энабле Ремоте Connection on SQL Server 2008 Express

также действительная, что FireWall windows не блокировал связь в порт Скл Сервер, connection string было бы

Server=ServerIpoNombre;Database=NombreDatabse;Trusted_Connection=True;
3
ответ дан 24.11.2019, 14:24