Как сохранить строки исходного кода в базе данных SQL Server и получить к нему доступ через DataSet - PullRequest
1 голос
/ 01 марта 2011

Я хочу сохранить следующий код в базе данных:

fun(...);

int main()
{
    fun(3, 7, -11.2, 0.66);
    return 0;
}
fun(...)
{
    va_list ptr;
    int num;
    va_start(ptr, n);
    num = va_arg(ptr, int);
    printf("%d", num);
}

, а затем вернуть его обратно в набор данных и отобразить на странице.

На данный момент я успешно сохранилвопросы с varchar(MAX) типом данных, но когда я пытаюсь получить его в наборе данных, я получаю следующую ошибку:

Failed To Enable Constraints. One Or More Rows Contain Values Violating Non-null, Unique, Or Foreign-key Constraints.

Я делаю это в веб-приложении ASP.NET.

РЕДАКТИРОВАТЬ: Вот определение таблицы таблицы, в которую я вставляю данные в

Database Definition

Запрос, который я использую для вставкиданные в таблицу:

con.ConnectionString = constr;
    cmd.Connection = con;
    cmd.CommandText = "insert into QuesTable values(@D1,@D2,@D3,@D4,@D5,@D6,@D7, NULL)";
    cmd.Parameters.Add("@D1", SqlDbType.Int).Value = txtQID.Text;
    cmd.Parameters.Add("@D2", SqlDbType.VarChar).Value = txtques.Text;
    cmd.Parameters.Add("@D3", SqlDbType.VarChar).Value = txtansa.Text;
    cmd.Parameters.Add("@D4", SqlDbType.VarChar).Value = txtansb.Text;
    cmd.Parameters.Add("@D5", SqlDbType.VarChar).Value = txtansc.Text;
    cmd.Parameters.Add("@D6", SqlDbType.VarChar).Value = txtansd.Text;
    cmd.Parameters.Add("@D7", SqlDbType.VarChar).Value = txtcorr.Text;

    con.Open();
    int i = cmd.ExecuteNonQuery();
    con.Close();

И, наконец, код, с помощью которого я извлекаю данные из набора данных

DataSet1.QuesTableDataTable dt = new DataSet1.QuesTableDataTable();
    DataSet1TableAdapters.QuesTableTableAdapter adp = new DataSet1TableAdapters.QuesTableTableAdapter();
    dt = adp.GetData();
    DataTable dtUser = dt.Clone();

Надеюсь, эта информация полезна.

Ответы [ 2 ]

1 голос
/ 02 марта 2011

Поскольку я не вижу, есть ли у вас какие-либо другие ограничения для таблицы, похоже, что значение, которое вы вставляете в поле первичного ключа (Qid), уже существует в таблице.

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

0 голосов
/ 01 марта 2011

Это ошибка, связанная с:

  • В ненулевое поле передается пустое значение при загрузке данных.
  • Недопустимый внешний ключ или проверка уникального индекса(например, значение FK, равное 9, не существует).

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

HTH.

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