як додати автоматичний приріст і первинний ключ в c #

Як додати автоматичний приріст і первинний ключ за допомогою c #?

Я використовую sql server 2008 і sqlite

ось мій код

використовувати sqlite

Dictionary field = new Dictionary();
            field.Add("id", "INT");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLite.CreateTables("satuan", field);

використовувати sql сервер

Dictionary field = new Dictionary();
            field.Add("id", "INT");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLServer.CreateTables("satuan", field);

РЕДАГУВАТИ

public int CreateTables(String tableName, Dictionary data)
        {
            switch (sqlType)
            {
                case DATABASE_SQL_TYPE.DATABASE_SQL_TYPE_SQLITE:
                    return cSQLite.CreateTables(tableName, data);
                case DATABASE_SQL_TYPE.DATABASE_SQL_TYPE_MSSQL:
                    return cSQL.CreateTables(tableName, data);
            }
            return 0;
        }


public int CreateTables(String tableName, Dictionary data)
        {
            string s = "CREATE TABLE " + tableName + " (";
            bool first = true;
            foreach (KeyValuePair val in data)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    s = s + ",";
                }
                string s1;
                s1 = String.Format("{0} {1}", val.Key, val.Value);
                s = s + s1;
            }
            s = s + ")";
            return this.ExecuteNonQuery(s);
        }
0
див. редагування у моєму запиті. @Damien_The_Unbeliever
додано Автор Abox LsrKdz, джерело
див. редагування у моєму запиті. @Damien_The_Unbeliever
додано Автор Abox LsrKdz, джерело
див. редагування у моєму запиті. @Damien_The_Unbeliever
додано Автор Abox LsrKdz, джерело
Де взятий цей метод CreateTables ? Це не стандартний метод в рамках, наскільки я знаю, і деталі того, як він працює, ймовірно, необхідно знати , якщо підтримує автоматичне збільшення або основні функції ключа.
додано Автор Damien_The_Unbeliever, джерело

6 Відповіді

For SQL Server check this http://www.w3schools.com/sql/sql_autoincrement.asp and для SQLite, this http://www.tutorialspoint.com/sqlite/sqlite_using_autoincrement.htm

Отже, я думаю, ваш код повинен виглядати так

для SQLite

Dictionary field = new Dictionary();
            field.Add("id", "INTEGER PRIMARY KEY AUTOINCREMENT");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLite.CreateTables("satuan", field);

і це для SQL Server

Dictionary field = new Dictionary();
            field.Add("id", "INT PRIMARY KEY IDENTITY");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLServer.CreateTables("satuan", field);
1
додано
Я запропонував додати коми після кожного типу даних, за винятком останнього, так що створювані таблиці методів будуть напевно більш короткі та менш логічні, щоб турбуватися.
додано Автор Edper, джерело

For SQL Server check this http://www.w3schools.com/sql/sql_autoincrement.asp and для SQLite, this http://www.tutorialspoint.com/sqlite/sqlite_using_autoincrement.htm

Отже, я думаю, ваш код повинен виглядати так

для SQLite

Dictionary field = new Dictionary();
            field.Add("id", "INTEGER PRIMARY KEY AUTOINCREMENT");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLite.CreateTables("satuan", field);

і це для SQL Server

Dictionary field = new Dictionary();
            field.Add("id", "INT PRIMARY KEY IDENTITY");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLServer.CreateTables("satuan", field);
1
додано
Я запропонував додати коми після кожного типу даних, за винятком останнього, так що створювані таблиці методів будуть напевно більш короткі та менш логічні, щоб турбуватися.
додано Автор Edper, джерело

For SQL Server check this http://www.w3schools.com/sql/sql_autoincrement.asp and для SQLite, this http://www.tutorialspoint.com/sqlite/sqlite_using_autoincrement.htm

Отже, я думаю, ваш код повинен виглядати так

для SQLite

Dictionary field = new Dictionary();
            field.Add("id", "INTEGER PRIMARY KEY AUTOINCREMENT");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLite.CreateTables("satuan", field);

і це для SQL Server

Dictionary field = new Dictionary();
            field.Add("id", "INT PRIMARY KEY IDENTITY");
            field.Add("mac", "VARCHAR(25)");
            field.Add("serial_number", "VARCHAR(25)");
            cDatabaseSQLServer.CreateTables("satuan", field);
1
додано
Я запропонував додати коми після кожного типу даних, за винятком останнього, так що створювані таблиці методів будуть напевно більш короткі та менш логічні, щоб турбуватися.
додано Автор Edper, джерело

На сервері sql ключове слово є PRIMARY KEY та IDENTITY, а для sql lite це PRIMARY KEY AUTOINCREMENT.

0
додано

На сервері sql ключове слово є PRIMARY KEY та IDENTITY, а для sql lite це PRIMARY KEY AUTOINCREMENT.

0
додано

На сервері sql ключове слово є PRIMARY KEY та IDENTITY, а для sql lite це PRIMARY KEY AUTOINCREMENT.

0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug