visual - procedimiento almacenado select c#




Devolver el resultado de la consulta de selección en un procedimiento almacenado a una lista (4)

En el procedimiento almacenado, solo necesita escribir la consulta de selección como se muestra a continuación:

CREATE PROCEDURE TestProcedure
AS
BEGIN
    SELECT ID, Name 
    FROM Test
END

En el lado C #, puede acceder usando Reader, datatable, adaptor.

El uso del adaptador acaba de ser explicado por Susanna Floora.

Utilizando Reader:

SqlConnection connection = new SqlConnection(ConnectionString);

command = new SqlCommand("TestProcedure", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;
connection.Open();
reader = command.ExecuteReader();

List<Test> TestList = new List<Test>();
Test test;

while (reader.Read())
{
    test = new Test();
    test.ID = int.Parse(reader["ID"].ToString());
    test.Name = reader["Name"].ToString();
    TestList.Add(test);
}

gvGrid.DataSource = TestList;
gvGrid.DataBind();

Utilizando dataTable:

SqlConnection connection = new SqlConnection(ConnectionString);

command = new SqlCommand("TestProcedure", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;
connection.Open();

DataTable dt = new DataTable();

dt.Load(command.ExecuteReader());
gvGrid.DataSource = dt;
gvGrid.DataBind();

Espero que te ayude. :)

Estoy escribiendo un procedimiento almacenado que actualmente contiene solo una consulta SELECT . Se ampliará para hacer una serie de otras cosas, por lo que tiene que ser un procedimiento almacenado, pero por ahora, es una consulta simple.

Algo como esto:

SELECT name, occupation, position 
FROM jobs 
WHERE ...

Estoy buscando devolver los resultados de esta consulta para ser usados ​​en C #. Quiero agregarlo a una lista para poder vincularlo a un componente de GridView.

Aunque no sé cómo hacer esto. Si tengo que insertarlo en una lista después de devolver todos los datos seleccionados, entonces está bien, solo necesito saber cómo devolver correctamente los datos para poder hacerlo.

Sin embargo, si puedo devolverlo en un formato que pueda aparecer en una lista, sería ideal.


Tal vez esto ayude:

Obteniendo filas de DB:

public static DataRowCollection getAllUsers(string tableName) 
{
     DataSet set = new DataSet();
     SqlCommand comm = new SqlCommand();
     comm.Connection = DAL.DAL.conn;
     comm.CommandType = CommandType.StoredProcedure;
     comm.CommandText = "getAllUsers";
     SqlDataAdapter da = new SqlDataAdapter();
     da.SelectCommand = comm;
     da.Fill(set,tableName);

     DataRowCollection usersCollection = set.Tables[tableName].Rows;
     return usersCollection;
}

Poblando DataGridView desde DataRowCollection:

public static void ShowAllUsers(DataGridView grdView,string table, params string[] fields) 
{
    DataRowCollection userSet = getAllUsers(table);
    foreach (DataRow user in userSet)
    {
         grdView.Rows.Add(user[fields[0]],
         user[fields[1]],
         user[fields[2]],
         user[fields[3]]);
    }
}

Implementación:

BLL.BLL.ShowAllUsers(grdUsers,"eusers","eid","euname","eupassword","eposition");

Tiene parametros?

        SqlConnection conn = new SqlConnection(func.internalConnection);
        var cmd = new SqlCommand("usp_CustomerPortalOrderDetails", conn);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        cmd.Parameters.Add("@CustomerId", SqlDbType.Int).Value = customerId;
        cmd.Parameters.Add("@Qid", SqlDbType.VarChar).Value = qid;
        conn.Open();

        // Populate Production Panels
        DataTable listCustomerJobDetails = new DataTable();
        listCustomerJobDetails.Load(cmd.ExecuteReader());
        conn.Close();

 SqlConnection connection = new SqlConnection(ConnectionString);

 command = new SqlCommand("TestProcedure", connection);
 command.CommandType = System.Data.CommandType.StoredProcedure;

 connection.Open();

 DataTable dt = new DataTable();

 dt.Load(command.ExecuteReader());

 gvGrid.DataSource = dt;
 gvGrid.DataBind();




sql-server