BTC USD 81,179.9 Gold USD 4,378.12
Time now: Jun 1, 12:00 AM

[Tutorial]Belajar Programming .NET Language

Hitman™;15850406 said:
owh..well clearly thats my false.

aku copy code tue dari sumber internet, lepas tue aku edit supaya ngam dengan form aku.

last2 error.

apa yang aku cuba buat ialah, aku akan masukkan detail dari form example dari "textbox" dan jugak "datagridview".

then dari situ bila aku tekan satu button, contohnya "save"..detail dari "textbox" dan "datagridview" tue akan masuk ke dalam database aku yang mengandungi

NoTransaction = AutoNumber
NoProduct = Number
TotalPrice = Currency
Quantity = Number
Date = Date/Time

so agak2 bro, apa method dan coding yang sesuai.

Seperti saya katakan sebelum ini, autonumber tak perlu insert lagi dah.... Sebab dia autoincrement.. dan menaik secara semula jadi....Jadi masukkan ini sahaja...

NoProduct = Number
TotalPrice = Currency
Quantity = Number
Date = Date/Time

Cuma pelik sikit, macam mana saya nak tahu pelanggan yang beli produk barang? sebab kat sini takda pun masukkan ID pelanggan....:D
 
Last edited:
Seperti saya katakan sebelum ini, autonumber tak perlu insert lagi dah.... Sebab dia autoincrement.. dan menaik secara semula jadi....Jadi masukkan ini sahaja...

NoProduct = Number
TotalPrice = Currency
Quantity = Number
Date = Date/Time

Cuma pelik sikit, macam mana saya nak tahu pelanggan yang beli produk barang? sebab kat sini takda pun masukkan ID pelanggan....:D

dia nak kasi clear stock jer tu kot...hehehe:)):))
 
Seperti saya katakan sebelum ini, autonumber tak perlu insert lagi dah.... Sebab dia autoincrement.. dan menaik secara semula jadi....Jadi masukkan ini sahaja...

NoProduct = Number
TotalPrice = Currency
Quantity = Number
Date = Date/Time

Cuma pelik sikit, macam mana saya nak tahu pelanggan yang beli produk barang? sebab kat sini takda pun masukkan ID pelanggan....:D

pakai code chuki2 bagi kat post yg awal tue ea?

memang takde id pelanggan pown..

benda neh jual beli je..takde invois pown.

rasanyer tak perlu id pelanggan.
 
aku xtau apa2 pasal ni, net language ni untuk buat program apa contohnya? hehe
 
pakai code chuki2 bagi kat post yg awal tue ea?

memang takde id pelanggan pown..

benda neh jual beli je..takde invois pown.

rasanyer tak perlu id pelanggan.

Oh ok, gud luck.. kalau ada apa2 masalah post kat sini... sekali ngan code eh... senang nak kaji... hehe
 
Untuk VB... untuk asas INSERT kedalam SQL, boleh cuba guna kaedah ini.. :

Code:
Dim con As New SqlConnection
Dim cmd As New SqlCommand

con.ConnectionString = "[COLOR="Red"][B]connection string anda[/B][/COLOR]"

cmd.Connection = con
cmd.CommandText = "INSERT INTO Transaction(amount,date ) VALUES(@amount, @date)"
sqlComm.Parameters.AddWithValue("@amount", tbAmount.Text)
sqlComm.Parameters.AddWithValue("@date", tbDate.Value)

Try
con.Open()
cmd.ExecuteNonQuery()
con.Close()

Catch ex As SqlExecption

MessageBox.Show("Gagal masukkan kedalam table.." & ex.Message, "Insert Records")

Finally

End Try

Tapi dari pemerhatian saya dari code bro, bro cuba nak masukkan data mengunakan Data Grid View...

Dan sebab itu bro buat foreach dalam data grid view untuk masukkan semua record kedalam table transaction..

Betul?


Jadi apa yang saya boleh cadangkan, bro boleh cuba cara seperti ini...

Code:
[COLOR="Red"][B]For i = 0 To DGV2.Rows.Count - 1[/B][/COLOR]

Dim con As New SqlConnection
Dim cmd As New SqlCommand

con.ConnectionString = "[COLOR="red"]connection string and[/COLOR]a"

cmd.Connection = con
cmd.CommandText = "INSERT INTO Transaction(amount,date ) VALUES(@amount, @date)"

'Merujuk kepada column pertama dalam datagrid iaitu amount
[B][COLOR="Red"]sqlComm.[/COLOR][/B]Parameters.AddWithValue("@amount", Decimal.Parse(DGV2.Rows[i].Cells[0].Value.ToString()))

'Merujuk kepada column dalam datagrid kedua iaitu tarikh
[B][COLOR="red"]sqlComm[/COLOR][/B].Parameters.AddWithValue("@date", DateTime.Parse(DGV2.Rows[i].Cells[1].Value.ToString()))

Try
con.Open()
cmd.ExecuteNonQuery()
con.Close()

Catch ex As SqlException

MessageBox.Show("Gagal masukkan kedalam table.." & ex.Message, "Insert Records")

Finally
con.Dispose()
End Try

Jadi bro faham apa saya cuba explain? Kita lihat disini DGV2.Rows.Cells[0].Value.ToString()

Ianya bermaksud kita dapatkan nilai daripada pada baris pertama .Rows[1] dan juga cell daripada column pertama iaitu .Cells[0]..

Jadi, setiap kali bro buat foreach, i atau pun kita panggil Index akan menaik..Dan proses akan menjadi seperti ini

DGV2.Rows[1].Cells[0].Value.ToString()
DGV2.Rows[2].Cells[0].Value.ToString()
DGV2.Rows[3].Cells[0].Value.ToString()
'dan seterusnya

Sampai habis foreach, i tadi akan stop pada nilai terakhir...Iaitu pada akhir row data grid..:)

Yang kedua, yup bro memang bagus sebab pakai parameter. Jadi bro mesti tahu apa kelebihan mengunakan parameter.. betul?

Kebiasaanya, dalam table transaction data type amount akan pakai jenis "Decimal" dan data type date pula akan pakai jenis "DateTime"... betul?

Jadi apa kesilapan bro buat, bro tidak parse value dari datagrid ke parameter, sebab itu dia akan keluar error "conversion from type dbnull to long is not valid"....

Jadi untuk elakkan error seperti itu, bro kena tambah Decimal.Parse atau DateTime.TryParse...

Contohnya seperti ini :
Code:
'Parse dari string ke decimal
Decimal.Parse(DGV2.Rows[i].Cells[0].Value.ToString())

'Parse dari string ke datetime
DateTime.Parse(DGV2.Rows[i].Cells[1].Value.ToString())

'Dan contohnya ada data type jenis Int boleh la wat gini
int.Parse(DGV2.Rows[i].Cells[3].Value.ToString())

Jadi harap bro paham penerangan saya...:), sorry kalau ada error.. VB dah tak igt sangat... huhuhu

Happy programming....;)


yang aku merahkan tue aku tak paham.

katakan aku letak coding tue kat button save..

firstly "connection anda" tue nak letak macamana?

secondly bila aku letak "for For i = 0 To DGV2.Rows.Count - 1", "next" nyer ape?

sql comm tue pown kene define kan?

aku pakai oledb.connection boleh?
 
Last edited:
Hitman™;15925357 said:
yang aku merahkan tue aku tak paham.

katakan aku letak coding tue kat button save..

firstly "connection anda" tue nak letak macamana?

secondly bila aku letak "for For i = 0 To DGV2.Rows.Count - 1", "next" nyer ape?

sql comm tue pown kene define kan?

aku pakai oledb.connection boleh?

bro, aku rasa chuki2 tersilap part tu, patutnya "cmd" bukan "sqlComm"...why "cmd"??? sbb kat atas dah declare :

Code:
Dim [B][COLOR="Red"]cmd [/COLOR][/B]As New SqlCommand

BTW, nko ada refer x contoh aku bagi aritu? sorri sbb dlm bahasa C# tp patutnya nko boleh faham dah tu...nah ni versi yang aku dah convert ke VB :

Code:
Public Sub btnSave_Click(sender As Object, e As EventArgs)
	Try
		If DGV2.Rows.Count <> 0 Then
			Dim totalquery As String = Nothing
			Dim connString As String = "Connection string nko"

			totalquery = "SELECT * FROM [DatabaseAku].[dbo].[tbl_Transaction];"

			Dim totalconn As New OleDbConnection(connString)
			Dim totalcmd As New OleDbCommand(totalquery, totalconn)
			Dim totalda As New OleDbDataAdapter(totalcmd)
			Dim totalds As New DataSet()
			totalda.Fill(totalds)

			If totalconn.State = ConnectionState.Closed Then
				totalconn.Open()
			End If

			Dim connection As String = "Server=11.11.11.1;user id=userID;password=userPassword;database=DatabaseAku"

			Dim myConnection As New SqlConnection(connection)
			myConnection.Open()

			For Each myRow As DataRow In DGV2.Rows
				Dim strQuery As String = "INSERT INTO [DatabaseAku].[dbo].[tbl_Transaction] ([transcID], [prodCode], [prodPrice], [butQty], [buyDateTime]) Values (@v_transcID, @v_prodCode, @v_prodPrice, @v_butQty, @v_buyDateTime)"

				Dim myCommand As SqlCommand
				myCommand = New SqlCommand(strQuery, myConnection)

				myCommand.Parameters.Add(New SqlParameter("@v_transcID", "Cust" + DateTime.Now))

				myCommand.Parameters.Add(New SqlParameter("@v_prodCode", myRow(1).ToString()))

				myCommand.Parameters.Add(New SqlParameter("@v_prodPrice", myRow(2).ToString()))

				myCommand.Parameters.Add(New SqlParameter("@v_butQty", myRow(3).ToString()))

				myCommand.Parameters.Add(New SqlParameter("@v_buyDateTime", System.DateTime.Now))

				myCommand.ExecuteNonQuery()
			Next

			myConnection.Close()

			totalda.Dispose()
			totalconn.Close()
			totalconn.Dispose()
		End If
	Catch ex As Exception
		Response.Write(ex.ToString() & "<BR>")
	End Try
End Sub
 
Last edited:
bro, aku rasa chuki2 tersilap part tu, patutnya "cmd" bukan "sqlComm"...why "cmd"??? sbb kat atas dah declare :

Code:
Dim [B][COLOR="Red"]cmd [/COLOR][/B]As New SqlCommand

BTW, nko ada refer x contoh aku bagi aritu? sorri sbb dlm bahasa C# tp patutnya nko boleh faham dah tu...nah ni versi yang aku dah convert ke VB :

Code:
Public Sub btnSave_Click(sender As Object, e As EventArgs)
	Try
		If DGV2.Rows.Count <> 0 Then
			Dim totalquery As String = Nothing
			Dim connString As String = "Connection string nko"

			totalquery = "SELECT * FROM [DatabaseAku].[dbo].[tbl_Transaction];"

			Dim totalconn As New OleDbConnection(connString)
			Dim totalcmd As New OleDbCommand(totalquery, totalconn)
			Dim totalda As New OleDbDataAdapter(totalcmd)
			Dim totalds As New DataSet()
			totalda.Fill(totalds)

			If totalconn.State = ConnectionState.Closed Then
				totalconn.Open()
			End If

			Dim connection As String = "Server=11.11.11.1;user id=userID;password=userPassword;database=DatabaseAku"

			Dim myConnection As New SqlConnection(connection)
			myConnection.Open()

			For Each myRow As DataRow In DGV2.Rows
				Dim strQuery As String = "INSERT INTO [DatabaseAku].[dbo].[tbl_Transaction] ([transcID], [prodCode], [prodPrice], [butQty], [buyDateTime]) Values (@v_transcID, @v_prodCode, @v_prodPrice, @v_butQty, @v_buyDateTime)"

				Dim myCommand As SqlCommand
				myCommand = New SqlCommand(strQuery, myConnection)

				myCommand.Parameters.Add(New SqlParameter("@v_transcID", "Cust" + DateTime.Now))

				myCommand.Parameters.Add(New SqlParameter("@v_prodCode", myRow(1).ToString()))

				myCommand.Parameters.Add(New SqlParameter("@v_prodPrice", myRow(2).ToString()))

				myCommand.Parameters.Add(New SqlParameter("@v_butQty", myRow(3).ToString()))

				myCommand.Parameters.Add(New SqlParameter("@v_buyDateTime", System.DateTime.Now))

				myCommand.ExecuteNonQuery()
			Next

			myConnection.Close()

			totalda.Dispose()
			totalconn.Close()
			totalconn.Dispose()
		End If
	Catch ex As Exception
		Response.Write(ex.ToString() & "<BR>")
	End Try
End Sub

maaf bertanya..tapi yang server tue semua apa ek?
 
Back
Top
Log in Register