Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Простой пример записи в MS SQL не работает


Автор: Firg 7.9.2010, 10:51
Доброго времени суток!

Пытаюсь написать простейшее приложение, которое при нажатии кнопочки впишет данные в таблицу MS SQL.
Дано:
База данных MS SQL (Database1.mdf) с одной единственной таблицей в ней (Users). В таблице Users имеются следующие поля: id (установлено свойство identity), username(nvarchar(50)), password(nvarchar(50)), type(int).

Пытаюсь внести информацию в таблицу следующим образом:

Код

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim queryString As String = "INSERT INTO Users (username, password, type) VALUES ('TestUser','TestPass','1')"
        Dim connectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
        Dim connection As New SqlClient.SqlConnection(connectionString)
        Dim command As New SqlClient.SqlCommand(queryString, connection)
        command.Connection.Open()
        Dim rowsaffected As Integer = command.ExecuteNonQuery()
        MsgBox(rowsaffected)
    End Sub
End Class



После выполнения кода переменная rowsaffected = 1, но открыв таблицу в ней нет тех данных, которые теоретически должны были туда вписаться. Выполняя запрос, указанный в переменной queryString прямо на SQL сервере, данные тут же появляются в таблице, тоесть синтаксис запроса верен.

Что я упустил? Где ошибся? Помогите, пожалуйста, знающие люди. Я только учусь, но в данном случае зашел в тупик, вроди как все делаю правильно, а результата нет.

В процессе, методом "научного втыка" удалось выяснить, что если записывать данные в базу данных, которая находится на самом сервере, а не в папке разрабатываемого приложения, то данные записываются нормально. В таком случае изменится только connectionstring, и будет равно:

Код

Data Source=TESTPC\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True

Автор: jonie 7.9.2010, 12:17
при каждом запуске дебага в вашем случае база кладется в debug папку путем перетирания той, что есть в проекте...

Автор: Firg 7.9.2010, 12:57
Хм... щаз проверю. Копирну в отдельную папку, и укажу путь вручную.


Да! Предположение подтвердилось. Я лох... ну или просто чайник smile Простите за неопытность. Надеюсь, эта тема еще кому-то (такому же чайнику как я) поможет smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)