none
Ищу решения RRS feed

  • Вопрос

  • Уважаемые, господа!

    Помогите с решением вопроса.

    Я принимаю данные через виртуальный СОМ порт.

    Надо данные разложить по ячейкам таблицы. Я уже создал базу данных в соответствии со своей таблицей, только теперь вопрос, как мне записать данные в конкретную ячейку или при заполнении в следующую  ячейку.

    Вот еще вопрос, сейчас я в ручную создавал эту таблицу с помощью конструктора, а как будет выглядеть создание такой же таблицы когда программа будет выполняться. Например одну таблицу заполнил надо её сохранить и заполнить другую (такую же) новыми данными. и сохранить под определенным именем.

    Заранее благодарю буду рад любой помощи.

    10 октября 2012 г. 18:59

Ответы

  • Привет.

    Лучше всего вам записывать данные целиком строкой, т.е. накапливаете сначала все что относится к текущей строке и далее сохраняете всю строку с помощью SQL оператора INSTERT. Как пример, можете посмотреть вот эту статью Simple ADO.NET Database Read, Insert, Update and Delete using C#.

    Другой вариант - если вы сгенерировали источник данных в Visual Studio (т.е. у вас есть типизированный DataSet), то тогда вам не нужно руками писать будет SQL команды, а достаточно будет заполнить этот DataSet, а после вызвать метод Update.


    Для связи [mail]

    15 октября 2012 г. 6:49
  •  Например одну таблицу заполнил надо её сохранить и заполнить другую (такую же) новыми данными. и сохранить под определенным именем.

    Заранее благодарю буду рад любой помощи.

    Для создания новой таблицы там как то команда Create Table называется. Туда выписывается и название и всё остальное.

    Вот из Management Studio скопировал скрипт создания базы. Но видимо вручную набрать та же ерунда получится.

    CREATE TABLE [dbo].[beton](
    	[idBeton] [smallint] NOT NULL,
    	[namebeton] [nvarchar](max) NULL,
    	[type] [smallint] NULL,
    	[Rbn] [float] NULL,
    	[Rbser] [float] NULL,
    	[Rbtn] [float] NULL,
    	[Rbtser] [float] NULL,
    	[Rb] [float] NULL,
    	[Rbt] [float] NULL,
    	[Eb] [float] NULL,
    	[kp] [float] NULL,
    	[uv] [smallint] NULL,
    	[ktr] [float] NULL,
    	[markabeton] [smallint] NULL,
    	[dinbeton] [smallint] NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

    т.е. Beton имя таблицы а всё остальное - столбцы. В конце Primary ключи всякие. :)


    • Изменено developers_s 17 октября 2012 г. 17:14
    • Помечено в качестве ответа Abolmasov Dmitry 18 октября 2012 г. 7:11
    17 октября 2012 г. 17:13

Все ответы

  • Добрый день.

    Какой язык программирования вы используете? На WinForms или WPF у вас интерфейс? Что вы понимаете под таблицей (какой класс или визуальный компонент)?

    11 октября 2012 г. 1:50
    Отвечающий
  • Добрый день!

    Я использую С#. Интерфейс WinForms. Про таблицу не понял вопрос. Что такое класс и визуальный компонент? Нужна обычная таблица.

    11 октября 2012 г. 6:32
  • Вот таблица, может поможет как-то определиться?

    11 октября 2012 г. 16:17
  • Привет.

    Лучше всего вам записывать данные целиком строкой, т.е. накапливаете сначала все что относится к текущей строке и далее сохраняете всю строку с помощью SQL оператора INSTERT. Как пример, можете посмотреть вот эту статью Simple ADO.NET Database Read, Insert, Update and Delete using C#.

    Другой вариант - если вы сгенерировали источник данных в Visual Studio (т.е. у вас есть типизированный DataSet), то тогда вам не нужно руками писать будет SQL команды, а достаточно будет заполнить этот DataSet, а после вызвать метод Update.


    Для связи [mail]

    15 октября 2012 г. 6:49
  •  Например одну таблицу заполнил надо её сохранить и заполнить другую (такую же) новыми данными. и сохранить под определенным именем.

    Заранее благодарю буду рад любой помощи.

    Для создания новой таблицы там как то команда Create Table называется. Туда выписывается и название и всё остальное.

    Вот из Management Studio скопировал скрипт создания базы. Но видимо вручную набрать та же ерунда получится.

    CREATE TABLE [dbo].[beton](
    	[idBeton] [smallint] NOT NULL,
    	[namebeton] [nvarchar](max) NULL,
    	[type] [smallint] NULL,
    	[Rbn] [float] NULL,
    	[Rbser] [float] NULL,
    	[Rbtn] [float] NULL,
    	[Rbtser] [float] NULL,
    	[Rb] [float] NULL,
    	[Rbt] [float] NULL,
    	[Eb] [float] NULL,
    	[kp] [float] NULL,
    	[uv] [smallint] NULL,
    	[ktr] [float] NULL,
    	[markabeton] [smallint] NULL,
    	[dinbeton] [smallint] NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

    т.е. Beton имя таблицы а всё остальное - столбцы. В конце Primary ключи всякие. :)


    • Изменено developers_s 17 октября 2012 г. 17:14
    • Помечено в качестве ответа Abolmasov Dmitry 18 октября 2012 г. 7:11
    17 октября 2012 г. 17:13
  • Другой вариант - если вы сгенерировали источник данных в Visual Studio (т.е. у вас есть типизированный DataSet), то тогда вам не нужно руками писать будет SQL команды, а достаточно будет заполнить этот DataSet, а после вызвать метод Update.

    Добрый день!

    Если я буду делать Update, то как мне сохранять прошлые данные (допустим вчерашние) они же будут затерты?

    20 октября 2012 г. 7:42
  • А где будут храниться данные из таблицы?
    20 октября 2012 г. 7:54
  • Update будет происходить только для измененных строк, если вы их выгрузите из БД в DataSet, а после измените.

    Для новых строк - будет Insert.

    Update это метод не SQL, а метод у адаптера - DbDataAdapter.Update


    Для связи [mail]

    22 октября 2012 г. 7:08
  • Добрый день, Дмитрий!

    В голове нет ясной картины как все это будет выглядеть. Может порекомендуете что-то почитать про БД, где все разложено по полкам, что? как? и почему?

    Заранее благодарю.

    22 октября 2012 г. 11:10
  • Можно например в книге Язык программирования C# 2008 и платформа .NET 3.5 главы
    Глава 22. ADO.NET, часть I: подключенный уровень	756
    Глава 23. ADO.NET, часть II: автономный уровень	806

    Для связи [mail]

    22 октября 2012 г. 11:34