如何使用C#中的存储过程解决此问题?

时间:2019-05-22 06:52:05

标签: c# sql-server

我在类视图中有一个DataGidView,它返回一个表Usuarios。而且我只需要列namesurname。我可以使用2个单选按钮在存储过程中订购数据。但只有我可以按姓名订购。

我的问题是:如何在存储过程中合并这两列?

使用显示错误的UNION命令

//ClasesBase
public static DataTable OrdenarUsuarioSP()
{
    //Conexion
    SqlConnection cnn = new SqlConnection(ClasesBase.Properties.Settings.Default.conex);

    //Comando de consulta
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "spOrdenarUsuario";

    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection = cnn;

    //Usuario oUsuario = new Usuario();
    //Parametros del comando
    //cmd.Parameters.AddWithValue("@u", oUsuario.Usu_nombreUsuario);
    //cmd.Parameters.AddWithValue("@p", oUsuario.USU_Contraseña1);
    //cmd.Parameters.AddWithValue("@ayn", oUsuario.Usu_contraseña);
    //cmd.Parameters.AddWithValue("@rol", oUsuario.USU_Rol1);

    ////Abrir la conexion
    //cnn.Open();

    ////Ejecuta la consulta (insert)
    //cmd.ExecuteNonQuery();

    ////Cierro la conexion
    //cnn.Close();

    // Creo la tabla vacía
    DataTable tabla = new DataTable();

    // Creo el adaptador en base al comando cmd
    SqlDataAdapter da = new SqlDataAdapter(cmd);

    // Lleno la tabla con los datos de la base de datos
    da.Fill(tabla);

    // devuelvo la tabla con los datos
    return tabla;

}  //Views

private void btnOrdenarUsuario_Click(object sender, EventArgs e)
{
    if (rbnNombreUsuario.Checked)
    {
        dgvListaUsuarios.DataSource = TrabajarUsuario.OrdenarUsuarioSP();
    }if (rbnApellidoNombre.Checked)
    {
        dgvListaUsuarios.DataSource = TrabajarUsuario.OrdenarUsuarioSP();
    }           
}

存储过程(我在这里遇到错误):

ALTER PROCEDURE spOrdenarUsuario
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
    /* SET NOCOUNT ON */
    SELECT * 
    FROM Usuario 
    ORDER BY USU_NombreUsuario ASC

    // I want to combine this to SQL instances
    SELECT * 
    FROM Usuario 
    ORDER BY USU_ApellidoNombre ASC 

    RETURN

0 个答案:

没有答案