sql >> データベース >  >> RDS >> Sqlserver

C# から SQL Server 2008 にデータ テーブルを渡す

    a.TypeName ="dbo.TableTypeInitial"; このステートメントを "a.SqlDbType =SqlDbType.Structured;" の前に配置してください

    使用

    cmd.CommandText ="EXEC FinishRegisterChoiceUserInitial @UserId, @TableTypeInitial ";   

    の代わりに
    cmd.CommandText ="EXEC FinishRegisterChoiceUserInitial @UserId, @CurrentTableInitial ";   

    SQL サーバー スクリプト:

     CREATE TABLE [Target] ( [ID] [int] NOT NULL PRIMARY KEY IDENTITY, [FirstName] [varchar](100)NOT NULL, [LastName] [varchar](100)NOT NULL, [Email ] [varchar](200) NOT NULL ) CREATE TYPE [TargetUDT] AS TABLE ( [FirstName] [varchar](100)NOT NULL, [LastName] [varchar](100)NOT NULL, [Email] [varchar](200 ) NOT NULL ) CREATE PROCEDURE AddToTarget(@TargetUDT TargetUDT READONLY) AS BEGIN INSERT INTO [Target] SELECT * FROM @TargetUDT END  

    サンプル コード :

    public static void StartProcess() { //顧客レコードを保持するローカル データ テーブルを作成します DataTable dtCustomers =new DataTable("Customers"); DataColumn dcFirstName =new DataColumn("FirstName", typeof(string)); DataColumn dcLastName =new DataColumn("LastName", typeof(string)); DataColumn dcEmail =new DataColumn("Email", typeof(string)); dtCustomers.Columns.Add(dcFirstName); dtCustomers.Columns.Add(dcLastName); dtCustomers.Columns.Add(dcEmail); //顧客 1 の DataRow を追加 drCustomer =dtCustomers.NewRow(); drCustomer["名"] ="AAA"; drCustomer["姓"] ="XYZ"; drCustomer["Email"] ="[email protected]
     "; dtCustomers.Rows.Add(drCustomer); //顧客 2 を追加 drCustomer =dtCustomers.NewRow(); drCustomer["FirstName"] ="BBB"; drCustomer["LastName"] ="XYZ"; drCustomer["Email "] ="[email protected]
     "; dtCustomers.Rows.Add(drCustomer); //顧客 3 を追加 drCustomer =dtCustomers.NewRow(); drCustomer["FirstName"] ="CCC"; drCustomer["LastName"] ="XYZ"; drCustomer["Email "] ="[email protected]
     "; dtCustomers.Rows.Add(drCustomer); //サーバー/データベースに接続する Connection オブジェクトを作成します SqlConnection conn =new SqlConnection(ConStr); conn.Open(); //ストアド プロシージャ SqlCommand cmdCustomer を呼び出すコマンド オブジェクトを作成します=new SqlCommand("AddToTarget", conn); cmdCustomer.CommandType =CommandType.StoredProcedure; //新しい SQL DB 型を使用してパラメーターを作成します.つまり、テーブル値として渡すように構造化されたパラメーター SqlParameter paramCustomer =cmdCustomer.Parameters.Add("@ TargetUDT", SqlDbType.Structured); paramCustomer.Value =dtCustomers; //クエリを実行します cmdCustomer.ExecuteNonQuery(); }  


    1. RailsアプリのMongoDBまたはMySQL、あるいはその両方

    2. mysqlロードデータローカルinfile

    3. 自動増分フィールドに挿入します

    4. Git分岐命名規則:ベストプラクティス