Visual Basic.NET - SQL y Net

   
Vista:

SQL y Net

Publicado por Marcelo (1 intervención) el 29/03/2010 03:51:03
Hola a todos los amigos del foro, a continuacion les detallo paso a paso lo que tengo para que se entienda lo que necesito.

En una base de datos local de SQL con visual studio 2008 tengo una tabla llamada
"Operadores"
Con los sig. campos
"ID", "Codigo", "Razon Social", etc, etc, los que importan para mi solucion son el "ID" y el "Codigo"
El Tipo de dato del campo "Codigo" es "int" con el identity: True - IdentityIncrement: 1 y el IdentitySeed: 1000000

Ahora en un proyecto en visual net con visual studio 2008 tengo dos formularios

"Pacientes" y otro llamado "Profesionales", los dos estan enlazados a la tabla "Operadores".
IMPORTANTE: al formulario "Pacientes" en el evento Load le agregue Me.TextBox_ID.text ="1" y en el "Profesionales" Me.TextBox_ID.text ="2", para que hago esto?, para que cuando le de al boton guardar en la tabla "Operadores" pueda diferenciar que registro es un paciente y cual un profesional. Ahora lo que necesito es codigo para que cuando guardo el formulario el campo "Codigo" se vaya incrementando de a uno pero diferenciandose del ID, es decir supongamos que cargo primero un profesional, quedaria por ejemplo asi
ID "2" Codigo 1000000,
Despues abro el formulario pacientes y cargo uno nuevo, quedaria ID"1" y el codigo 1000001, pero yo necesito que comience desde el principio, o sea tendria que ser 1000000, es decir que a medida que voy cargando nuevos registros se vayan sumando de a uno pero diferenciadose por el ID, NO que se unifique el incremento.
Alguien me podria pasar el codigo completo y aclararme si lo coloco con el update o antes del update. el update lo tengo de esta manera

Me.Validate()
Try
Me.OperadoresBindingSource.EndEdit()
Me.OperadoresTableAdapter.Update(Me.ConsultorioDataSet.Operadores)
Catch ex As Exception
MsgBox(ex.Message)
MsgBox("update failed")
End Try

Muchas gracias de antemano por la atencion.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SQL y Net

Publicado por Pelusa (81 intervenciones) el 30/03/2010 09:31:46
Hola marcelo, weno si no he entendido mal tu pregunta lo que necesitas es muy sencillo.
Lo unico que debes hacer antes de ejecutar tu consulta de inserccion es una llamada a una fuction en la que realices una consulta de este estilo. Te incluyo codigo para ayudarte. En el load despues de asiganr el ID=2 o ID=1 llamas a esta funcion

LO QUE DEBES HACER EN EL LOAD ES ESTO

Me.TextBox_ID.text = RetornarCodigo

Public Function RetornarCodigo() As Integer
Dim Codigo As Integer
Dim Sql As String
Dim DS As New DataSet
Dim DA As SqlDataAdapter

DS.Reset()
Sql = " Select Max(Codigo) from Operadores where ID='" & Me.TextBox_ID.text & "'
DA = New SqlDataAdapter(Sql, Conexion)
DA.Fill(DS, "CodigoSiguiente")

If DS.Tables("CodigoSiguiente").Rows.Count = 1 Then
Codigo = DS.Tables("CodigoSiguiente").Rows(0).Item("Codigo")
End If

Return Codigo
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL y Net

Publicado por Pelusa (81 intervenciones) el 30/03/2010 09:33:22
Me.TextBox_ID.text = RetornarCodigo ESTO NO PERDON
EL CODIGO = RetornarCodigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para Pelusa

Publicado por Marcelo (1 intervención) el 01/04/2010 03:10:07
Hola Pelusa, antes que nada muchas gracias, pero cuando coloco el codigo me mancha las lineas que a continuacion te voy a marcar diciendome que no esta definido.


Public Function RetornarCodigo() As Integer
Dim Codigo As Integer
Dim Sql As String
Dim DS As New DataSet
Dim DA As SqlDataAdapter -- ACA ME PONE QUE SQLDATADAPTER NO ESTA DEFINIDO

DS.Reset()
Sql = " Select Max(Codigo) from Operadores where ID='" & Me.TB_Identificador.Text & "'"
DA = New SqlDataAdapter(Sql, Conexion)
DA.Fill(DS, "CodigoSiguiente")

If DS.Tables("CodigoSiguiente").Rows.Count = 1 Then
Codigo = DS.Tables("CodigoSiguiente").Rows(0).Item("Codigo")
End If

Return Codigo
End Function

Probe reemplazandolo con el OperadoresTableAdapter pero tambien me da error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar