2012-11-20 4 views
0

매개 변수가있는 SQLite3 데이터베이스에 목록 항목을 삽입하려고하지만 작동하지 않습니다. 오류가 발생하지 않습니다. 다음 cmd.parameters.add에 ...vb.net에서 매개 변수가있는 SQLite 데이터베이스에 삽입

strSQL = "insert into tbltrans2 (transid, flddate, itemcode, itemname, qty, price, total, btw, btwper) values (?,?,?,?,?,?,?,?,?)" 
Using cn As New SQLiteConnection("Data Source=" + Application.StartupPath + "\POS.s3db; Version=3;"), _ 
    cmd As New SQLiteCommand(strSQL, cn) 

    cmd.Parameters.Add("?", DbType.String).Value = txtTransId.Text 
    cmd.Parameters.Add("?", DbType.Date).Value = txtDate.Text 
    cmd.Parameters.Add("?", DbType.Double) 
    cmd.Parameters.Add("?", DbType.Double) 
    cmd.Parameters.Add("?", DbType.Double) 
    cmd.Parameters.Add("?", DbType.Double) 
    cmd.Parameters.Add("?", DbType.Double) 
    cmd.Parameters.Add("?", DbType.Double) 
    cmd.Parameters.Add("?", DbType.Double) 

    cn.Open() 
    For Each ls As ListViewItem In ListItems.Items 
     cmd.Parameters(2).Value = ls.Tag 
     cmd.Parameters(3).Value = ls.SubItems(0).Text 
     cmd.Parameters(4).Value = (ls.SubItems(1).Text) 
     cmd.Parameters(5).Value = (ls.SubItems(2).Text) 
     cmd.Parameters(6).Value = (ls.SubItems(3).Text) 
     cmd.Parameters(7).Value = (Double.Parse(ls.SubItems(5).Text)/100) * (Double.Parse(ls.SubItems(3).Text)).ToString("#,##0.00") 
     cmd.Parameters(8).Value = Double.Parse(ls.SubItems(5).Text) 

     cmd.ExecuteNonQuery() 
     MsgBox(strSQL) 
    Next ls 
    cn.Close() 
End Using 

답변

0

당신은이 작업을 수행 할 수 있습니다 ... 그냥 값을 삭제 (Dbtype.String) .value = txtTransId :

여기 내 코드입니다.. 텍스트 .... 그냥 텍스트에 넣어 모든 값 ..

strSQL = "insert into tbltrans2 (transid, flddate, itemcode, itemname, qty, price, total, btw, btwper)" 
Using cn As New SQLiteConnection("Data Source=" + Application.StartupPath + "\POS.s3db; Version=3;"), _ 
    cmd As New SQLiteCommand(strSQL, cn) 

    cmd.Parameters.Add(DbType.String).Value = txtTransId.Text 
    cmd.Parameters.Add(DbType.Date).Value = txtDate.Text 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 
    cmd.Parameters.Add(DbType.Double).Value = "The TEXT HERE" 

    cn.Open() 
    For Each ls As ListViewItem In ListItems.Items 
     cmd.Parameters(2).Value = ls.Tag 
     cmd.Parameters(3).Value = ls.SubItems(0).Text 
     cmd.Parameters(4).Value = (ls.SubItems(1).Text) 
     cmd.Parameters(5).Value = (ls.SubItems(2).Text) 
     cmd.Parameters(6).Value = (ls.SubItems(3).Text) 
     cmd.Parameters(7).Value = (Double.Parse(ls.SubItems(5).Text)/100) * (Double.Parse(ls.SubItems(3).Text)).ToString("#,##0.00") 
     cmd.Parameters(8).Value = Double.Parse(ls.SubItems(5).Text) 

     cmd.ExecuteNonQuery() 
     MsgBox(strSQL) 
    Next ls 
    cn.Close() 
End Using 
+0

명명 된 매개 변수를 사용하지 않는 이유는 무엇입니까? – Tim

관련 문제