Что не так с синтаксисом этого оператора SQL, который я использую для создания таблицы?
Я продолжаю запускать код / отладчик и даже устанавливаю точки останова, чтобы я мог пошагово пройти по коду и не смог найти, в чем заключается синтаксическая ошибка. Я знаю, что это внутри этого метода C# для создания новой таблицы в c-дереве база данных.
Вот код:
/*
Define() method
where specific data definitions are established also will include the definition of the table
being created as well as defining rows and columns of the table
*/
public static void Define()
{
Console.WriteLine("DEFINE");
try
{
//Creation of the table with the specified data types and the column Names
Console.WriteLine("\tCreating table...");
cmd.CommandText = "CREATE TABLE testData (" +
"Trackingid VARCHAR(35)," +
"dates DATETIME," +
"Name_Of_Recipient VARCHAR(35)," +
"addresss VARCHAR(35)," +
"address2 VARCHAR(31)," +
"City VARCHAR(34)," +
"Town VARCHAR(23)," +
"states VARCHAR(5)," +
"ZipCode INT )";
cmd.ExecuteNonQuery();
}
catch(CtreeSqlException e)
{
Console.WriteLine(e + " could not define this table");
}
catch(Exception e)
{
Console.WriteLine(e + "Error the table could not be defined");
}
}
Как я уже упоминал ранее, несколько раз пытаясь пройтись по коду, я предполагаю, что у меня может быть много записей в столбцах? или сильно полагаться на тип данных VARCHAR?
Брошено исключительное сообщение:
" Creating table...
Ctree.Data.SqlClient.CtreeSqlException (0x7FFFB1DD): Syntax error ---> Ctree.SqlClient.Common.FcSqlException: Syntax error
at Ctree.SqlClient.FcSqlXApi.SQLExec(FcStatement stmt, Int32 InStatementType, FcSqlDA ida, FcSqlDA oda, FcSqlCA sqlca)
at Ctree.SqlClient.FcSqlXApi.Prepare(FcStatement stmt, FcSqlDA input_sqlda, FcSqlDA output_sqlda, Int32 fetchSize)
at Ctree.SqlClient.FcConnection.Prepare(FcStatement statement, FcSqlDA inputDA, FcSqlDA outputDA, Int32 fetchSize)
at Ctree.SqlClient.FcPreparedStatement..ctor(FcConnection connexion, String sql, Int32 fetchSize, Int32 timeout)
at Ctree.Data.SqlClient.CtreeSqlCommand.InternalPrepare(Boolean resultSet)
at Ctree.Data.SqlClient.CtreeSqlCommand.ExecuteNonQuery()
at Ctree.Data.SqlClient.CtreeSqlCommand.ExecuteNonQuery()
at DBbeta.Program.Define() in C:\Users\WVX0DYQ\source\repos\DBbeta\DBbeta\Program.cs:line 76 could not define this table"
1 ответ
Сначала проверьте, существует ли таблица или нет. Если не существует, то создайте таблицу.
Это запущенный пример, введите ваши значения и запустите
И используйте INTEGER, а не int Смотрите это для типов данных
var commandStr= "CREATE TABLE Customer(First_Name char(50),Last_Name char(50),Address char(50),City char(50),Country char(25),Birth_Date datetime)";
using (SqlCommand command = new SqlCommand(commandStr, con))
command.ExecuteNonQuery();
Найти ссылку