cub71 Skrevet 28. oktober 2006 Del Skrevet 28. oktober 2006 Jeg bruker Visual C# 2005 Express og MS SQL Server 2005 Express. Nå trenger jeg å opprette nye tabeller programmatisk og har funnet ut at jeg skal bruke SMO. Jeg sliter med å finne ut hvilke namespaces jeg skal bruke, men har tror det skal være Microsoft.SqlServer.Management.Smo. Men jeg får feilmeldinger. using Microsoft.SqlServer.Management.Smo; .............. private void opprettDutyTable(int DutyID) { // Establish the database server SqlConnection connection = new SqlConnection(connString); Server server = new Server(new ServerConnection(connection)); // Create table in my personal database Database db = server.Databases["MyDatabase"]; // Create new table, called TestTable string tableName = "Duty" + EmployID.ToString(); Table newTable = new Table(db, tableName); // Add "DutyID" Column, which will be PK Column idColumn = new Column(newTable, "DutyID"); idColumn.DataType = DataType.Int; idColumn.Nullable = false; idColumn.Identity = true; idColumn.IdentitySeed = 1; idColumn.IdentityIncrement = 1; // Add "Title" Column Column titleColumn = new Column(newTable, "Title"); titleColumn.Datatype = datatype.Int; // titleColumn.DataType = DataType.VarChar(50); titleColumn.Nullable = false; // Add Columns to Table Object newTable.Columns.Add(idColumn); newTable.Columns.Add(titleColumn); // Create a PK Index for the table Index index = new Index(newTable, "PK_TestTable"); index.IndexKeyType = IndexKeyType.DriPrimaryKey; // The PK index will consist of 1 column, "DutyID" index.IndexedColumns.Add(new IndexedColumn(index, "DutyID")); // Add the new index to the table. newTable.Indexes.Add(index); // Physically create the table in the database newTable.Create(); } Jeg får følgende feilmeldinger: The type or namespace name 'ServerConnection' could not be found (are you missing a using directive or an assembly reference?)The best overloaded method match for 'Microsoft.SqlServer.Management.Smo.Server.Server(string)' has some invalid arguments Argument '1': cannot convert from 'ServerConnection' to 'string' 'Microsoft.SqlServer.Management.Smo.Column' does not contain a definition for 'Datatype' The name 'datatype' does not exist in the current context Jeg har lagt til følgende referanser: Microsoft.SqlServer.ConnectionInfo Microsoft.SqlServer.Smo Microsoft.SqlServer.SmoEnum Microsoft.SqlServer.SqlEnum Noen forslag til hva jeg kan gjøre? Lenke til kommentar
j000rn Skrevet 28. oktober 2006 Del Skrevet 28. oktober 2006 'Microsoft.SqlServer.Management.Smo.Server.Server(string)' has some invalid arguments Argument '1': cannot convert from 'ServerConnection' to 'string': Server server = new Server("localhost","user","pass"); eller Server server = new Server("localhost"); Microsoft.SqlServer.Management.Smo.Column' does not contain a definition for 'Datatype' The name 'datatype' does not exist in the current context Datatype skrives DataType i C#. Bruker du ikke VS.Net? CTRL+SPACE? :-P Uansett så ville jeg kanskje foretrukket en valig CREATE TABLE statement for så enkle ting. Ville nok vært mindre kode også... Lenke til kommentar
j000rn Skrevet 28. oktober 2006 Del Skrevet 28. oktober 2006 Såvidt jeg husker trenger du også kun: Microsoft.SqlServer.ConnectionInfo Microsoft.SqlServer.Smo .... men kan nok hende jeg husker feil der... Lenke til kommentar
cub71 Skrevet 29. oktober 2006 Forfatter Del Skrevet 29. oktober 2006 Uansett så ville jeg kanskje foretrukket en valig CREATE TABLE statement for så enkle ting. Ville nok vært mindre kode også... Selvfølgelig! Skal heller gjøre det slik. Rart med det når man Googler noe og havner inne på et spor man egentlig ikke hadde planlagt... Lenke til kommentar
j000rn Skrevet 29. oktober 2006 Del Skrevet 29. oktober 2006 Uansett så ville jeg kanskje foretrukket en valig CREATE TABLE statement for så enkle ting. Ville nok vært mindre kode også... Selvfølgelig! Skal heller gjøre det slik. Rart med det når man Googler noe og havner inne på et spor man egentlig ikke hadde planlagt... 7173658[/snapback] Ikke missforstå meg, SMO er genialt, men brukes helst til mer avanserte ting. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå