【问题标题】:C# unable to create table with tinytextC# 无法使用 tinytext 创建表
【发布时间】:2020-04-20 03:42:49
【问题描述】:

我正在使用下面的代码来尝试创建一个表。但是它给了我一条错误消息“找不到数据类型 TINYTEXT”。我正在使用 SQLite,VS2017。 SQLite 文档说 TINYTEXT 是一种类型,应该被接受。任何人都知道为什么这不起作用,需要更改什么?

谢谢

         DBResult dbResult = new DBResult();

            SqlConnection dbConnect = new SqlConnection("Server =localhost\\SQLEXPRESS;Database=master;Trusted_Connection=True;");

            string query = @"CREATE TABLE test.task (
            TaskID INTEGER NOT NULL PRIMARY KEY,
            ParentID INTEGER,
            Title TINYTEXT DEFAULT NULL,
            Notes MEDIUMTEXT DEFAULT NULL,
            Priority SMALLINT(6) DEFAULT NULL,
            )";


            SqlCommand cmd = new SqlCommand(query, dbConnect);
            try
            {
                dbConnect.Open();
                cmd.ExecuteNonQuery();
                dbResult.isSuccess = true;
            }
            catch (SqlException ex)
            {
                dbResult.isSuccess = false;
                dbResult.result = ex.ToString();
            }
            finally
            {
                dbConnect.Close();
            }
            return dbResult;
        }

【问题讨论】:

  • 您的连接字符串看起来不像您在使用 SQLite?
  • 您的连接字符串显示您使用的是 SQL Server Express 实例而不是 SQLLite
  • 我同意@sticky bit
  • 在我回答之前是 MySql、Sqlite 还是 Sql Server。 TINYTEXT 来自 MySql。你说你正在使用 Sqlite。您的代码正在使用 Sql Server 提供程序。是哪个?

标签: c# sql sqlite


【解决方案1】:

放置一个 Sqlite 连接: 使用 System.Data.SQLite;

SQLiteConnection dbConnect = new SQLiteConnection("Data Source=PATH_TO_SQLITE_FILE;FailIfMissing=True;");

【讨论】:

    【解决方案2】:

    您用于制作查询的文档并未描述您所连接的数据库所使用的语法。

    基本上,您似乎参考了 MySQL 的文档,但您正在连接到使用 Transact-SQL 命令的 Microsoft SQL 数据库。有许多不同类型的数据库,它们可能具有不同的特性和构建查询的不同方式。

    VARCHAR 是 ISO SQL:2003 标准的一部分; TEXT 数据类型(包括 TINYTEXT)是非标准的。因此,您需要将查询调整为以下内容:

    string query = @"CREATE TABLE test.task (
            TaskID INTEGER NOT NULL PRIMARY KEY,
            ParentID INTEGER,
            Title VARCHAR(255) DEFAULT NULL,
            Notes VARCHAR(65532) DEFAULT NULL,
            Priority SMALLINT(6) DEFAULT NULL,
            )";
    

    【讨论】:

      猜你喜欢
      • 2020-05-14
      • 1970-01-01
      • 2016-02-10
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 2020-11-04
      相关资源
      最近更新 更多