SQL Server CE Insert выдает «Имя таблицы недопустимо» - PullRequest
0 голосов
/ 04 февраля 2012

У меня проблема с вставкой некоторых данных в таблицу в моей базе данных SQL Server CE.Конечная цель состоит в том, чтобы отправить необходимые значения для столбцов X, Y и Z, чтобы я мог выполнить INNER JOIN для таблицы с другим, а затем опустить столбец Q.

Вот моя вставка:

//Make the SQL query and set the parameters
SqlCeCommand SQLVarQ = connection.CreateCommand();

SQLVarQ.CommandText = "INSERT INTO Results (Value, Indx, Length) VALUES (@Var, @Ind, @Lng)";
SQLVarQ.CommandType = CommandType.TableDirect;

SQLVarQ.Parameters.Add("@Var", ThreadBuffer.SelectedText);
SQLVarQ.Parameters.Add("@Ind", ThreadBuffer.SelectionStart);
SQLVarQ.Parameters.Add("@Lng", Convert.ToInt32(varWordMatch.Length));

SQLVarQ.UpdatedRowSource = UpdateRowSource.Both;

using (SQLVarQ)
{
   SQLVarQ.ExecuteNonQuery();                    
}

Это ошибка, которую выдает:

Указанная таблица не существует.[INSERT INTO Results (Value, Indx, Length) VALUES (@Var, @Ind, @Lng)]

У кого-нибудь есть идеи относительно того, почему это происходит?Любая помощь очень ценится.

РЕДАКТИРОВАТЬ: я знаю, что создал таблицу, потому что это чуть выше другого фрагмента кода:

            SqlCeCommand SqlTable = connection.CreateCommand();
        SqlTable.CommandText = "CREATE TABLE Results (Value NVARCHAR, Indx INT, Length INT, Data NVARCHAR)";
        using (SqlTable)
        {
            try
            {
                SqlTable.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("The Table already exists");
            }
        }

1 Ответ

2 голосов
/ 04 февраля 2012

Это потому, что вы установили CommandType = CommandType.TableDirect. Попробуйте CommandType.Text вместо.

...