2012-03-23 10 views
-1

私のテーブル名はinstallation_statusあり、それは挿入値は

という名前の別のテーブルから insallationidの値を挿入すると同時に、発言&状態にテキストボックスの値を挿入するには

installationid (fk) 
remarks (varchar) 
status (varchar) 

のような列が含まれています

(installation)column (installatioid(primary key,identity)). 

私はこの

installationid remarks status 
73    asd  xxx 
のように、必要なO/Pを見て欲しいです

値73が設置テーブルの列から得られる

installationid(primarykey(identity(1,1)) 

MMY .NETコードは必要な取得

plsは私に助け/ P oを取得

con = New SqlConnection("server=(local)\sqlexpress;Database=service_request; Uid=service_request;Pwd=test123; ") 
con.Open() 
Try 
     Dim s2 As String 
     s2 = DropDownList4.SelectedItem.Value.ToString 
     cmd = New SqlCommand("insert into installation_status1 (status1,remarks)values('" + s2 + "','" + txtrmks.Text + "')", con) 
     cmd.ExecuteNonQuery() 

     cmd1 = New SqlCommand("INSERT INTO installation_status1 (installation_id)select installation_id FROM installation1", con) 
     cmd1.ExecuteNonQuery() 
    Catch ex As Exception 
     Lblmsg.Text = "error in recording the information: " + ex.Message 
    End Try 
    con.Close()  

この

null asd xx 
78  null null 
を気に入っていますo/p

+0

必要なものはピボットクエリです。 BooksOnlineでそれを見てください – Asdfg

+0

SQLの理解に少し問題があるようですが、これはセットベースの言語です。 VB、C#、そして他の多くの言語のように進歩的ではありません。ある時点では、インストール1のテーブルには多くのレコードがあることに注意してください。特定のインストールに対して新しいinstallation_status1レコードを挿入する場合、アプリケーションはユーザーがどのインストールについて話しているかをどのように認識しますか?これは、あなたの問題を解決するために答える必要がある主な質問です。 –

答えて

0

あなたの問題は、主にあなたがpeあなただけの1

2番目のINSERT文を実行しなければならない2つの独立したINSERT文をrformingが完全に間違っている:

INSERT INTO installation_status1 (installation_id)select installation_id FROM installation1 

remarks列とstatus列にNULL値を持つ新しいレコードを挿入します。この文で。このステートメントを実行すると、その時点のinstallation1テーブルのすべてのレコードに対して、新しい対応するレコードがinstallation_status1テーブルに挿入されます。私はこれがあなたが望むものではないと確信しています。それはあなたが直接ユーザー入力を挿入されているように見えるので、あなたが潜在的に、このアプローチでは「SQLインジェクション」を自分自身を開いている:

insert into installation_status1 (installation_id,status1,remarks)values(" + installationId + ",'" + s2 + "','" + txtrmks.Text + "') 

(側注:

あなたの最初のINSERT文は次のようになります。あなたのクエリに。代わりにparametersの使用を検討してください。)

私は挿入文にinstallation_id列を追加しました、と私はまたinstallationId命名(現在は未定義)の変数を使用して、その列の値を指定しました。あなたは、installationId変数に値を設定する方法を理解する必要があります。あなたのアプリケーションは、ユーザが「インストール」を行う前に、備考とステータスを適用しようとしている必要があります。つまり、この時点に達する前に、あなたのアプリケーションは、正しいinstallationIdが何であるかを知っている必要があります。