farhadyoosefi
یک شنبه 06 اسفند 1385, 21:35 عصر
سلام.همگی خسته نباشید, لطفا به من بگید اشکال این کد چیه؟
من یه table به نام person دارم که صفت id , primary key این table هست و identity اون yes شده یعنی کلید اصلیش بدون دخالت کاربر از عدد 9 یکی یکی زیاد میشه(seed از 9 تعریف شده)
حالا من می خوام تو این table , search کنم.برای این کارم , باید id رو پیدا کنم.
برای این کار من یه procedureبه نام sreachpersonid نوشتم که کدش به این صورته:
CREATE procedure sreachpersonid
@type int,@name nvarchar(30) , @identitycode float , @nationalcode float , @mobilephon bigint , @officephon bigint , @officeaddress nvarchar(200) , @description nvarchar(200),@id int output
as
select id from person
where
type=@type or name=@name or identitycode=@identitycode or nationalcode=@nationalcode or mobilephon=@mobilephon or officephon=@officephon or officeaddress like '%@officeaddress%' or description like '%@description%'
select @id=@@Identity
GO
و در پروژهی windows applicatin این کدرو زدم:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dbcommand As New SqlCommand
Dim sqlConnectionString As String
Dim Cn As SqlConnection
sqlConnectionString = "Database=lands;Data Source=(Local);Integrated Security=SSPI"
Dim drdUser As SqlDataReader
Dim prm As SqlParameter
Try
Cn.Open()
dbcommand.Connection = Cn
dbcommand.CommandText = "sreachpersonid"
dbcommand.CommandType = CommandType.StoredProcedure
(( dbcommand.Parameters.Add(New SqlParameter("@type", 0
(( dbcommand.Parameters.Add(New SqlParameter("@name", txtname.Text
((dbcommand.Parameters.Add(New SqlParameter("@identitycode", txtidentitycode.Text
(( dbcommand.Parameters.Add(New SqlParameter("@nationalcode", txtnationalcode.Text
(( dbcommand.Parameters.Add(New SqlParameter("@mobilephon ", txtmobilephon.Text
(( dbcommand.Parameters.Add(New SqlParameter("@officephon ", txtofficephon.Text
(( dbcommand.Parameters.Add(New SqlParameter("@officeaddress ", txtofficeaddress.Text
(( dbcommand.Parameters.Add(New SqlParameter("@description ", txtdescription.Text
(( prm = dbcommand.Parameters.Add(New SqlParameter("@id", SqlDbType.Int
prm.Direction = ParameterDirection.Output
drdUser = dbcommand.ExecuteReader
If drdUser.Read() Then
TextBox1.Text = drdUser("id").ToString
End If
() drdUser.Close
() dbcommand.Cancel
() Cn.Close
Catch sqlException As System.Data.SqlClient.SqlException
(() MsgBox(sqlException.ToString
Catch exception As System.Exception
(() MsgBox(exception.ToString
End Try
End Sub
حالا وقتی که پروژه رو run می کنم در هر حالتی id فیلد اول یعنی 9 رو میده .خواهشن کمکم کنید تا اشکال کارم رو بفهمم
ممنون.
من یه table به نام person دارم که صفت id , primary key این table هست و identity اون yes شده یعنی کلید اصلیش بدون دخالت کاربر از عدد 9 یکی یکی زیاد میشه(seed از 9 تعریف شده)
حالا من می خوام تو این table , search کنم.برای این کارم , باید id رو پیدا کنم.
برای این کار من یه procedureبه نام sreachpersonid نوشتم که کدش به این صورته:
CREATE procedure sreachpersonid
@type int,@name nvarchar(30) , @identitycode float , @nationalcode float , @mobilephon bigint , @officephon bigint , @officeaddress nvarchar(200) , @description nvarchar(200),@id int output
as
select id from person
where
type=@type or name=@name or identitycode=@identitycode or nationalcode=@nationalcode or mobilephon=@mobilephon or officephon=@officephon or officeaddress like '%@officeaddress%' or description like '%@description%'
select @id=@@Identity
GO
و در پروژهی windows applicatin این کدرو زدم:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dbcommand As New SqlCommand
Dim sqlConnectionString As String
Dim Cn As SqlConnection
sqlConnectionString = "Database=lands;Data Source=(Local);Integrated Security=SSPI"
Dim drdUser As SqlDataReader
Dim prm As SqlParameter
Try
Cn.Open()
dbcommand.Connection = Cn
dbcommand.CommandText = "sreachpersonid"
dbcommand.CommandType = CommandType.StoredProcedure
(( dbcommand.Parameters.Add(New SqlParameter("@type", 0
(( dbcommand.Parameters.Add(New SqlParameter("@name", txtname.Text
((dbcommand.Parameters.Add(New SqlParameter("@identitycode", txtidentitycode.Text
(( dbcommand.Parameters.Add(New SqlParameter("@nationalcode", txtnationalcode.Text
(( dbcommand.Parameters.Add(New SqlParameter("@mobilephon ", txtmobilephon.Text
(( dbcommand.Parameters.Add(New SqlParameter("@officephon ", txtofficephon.Text
(( dbcommand.Parameters.Add(New SqlParameter("@officeaddress ", txtofficeaddress.Text
(( dbcommand.Parameters.Add(New SqlParameter("@description ", txtdescription.Text
(( prm = dbcommand.Parameters.Add(New SqlParameter("@id", SqlDbType.Int
prm.Direction = ParameterDirection.Output
drdUser = dbcommand.ExecuteReader
If drdUser.Read() Then
TextBox1.Text = drdUser("id").ToString
End If
() drdUser.Close
() dbcommand.Cancel
() Cn.Close
Catch sqlException As System.Data.SqlClient.SqlException
(() MsgBox(sqlException.ToString
Catch exception As System.Exception
(() MsgBox(exception.ToString
End Try
End Sub
حالا وقتی که پروژه رو run می کنم در هر حالتی id فیلد اول یعنی 9 رو میده .خواهشن کمکم کنید تا اشکال کارم رو بفهمم
ممنون.