Recuperar el número de columnas en la tabla SQL-C#



.net sql-server (5)

Soy muy nuevo en C #. Estoy tratando de recuperar el número de columnas usando:

SELECT count(*) FROM sys.columns 

¿Podría explicar cómo usar el comando y ponerlo en una variable?

https://src-bin.com


Answer #1

Deseará utilizar las funciones ADO .NET en el espacio de nombres System.Data.SqlClient. ExecuteScalar es un método fácil de usar cuando solo quieres obtener un único resultado. Para resultados múltiples, puede usar un SqlDataReader.

using System.Data.SqlClient;
string resultVar = String.Empty;
string ServerName="localhost";
string DatabaseName="foo";
        SqlConnection conn=new SqlConnection(String.Format("Data Source={0};Initial Catalog={1};Integrated Security=SSPI",ServerName,DatabaseName));
        SqlCommand cmd=new SqlCommand(Query,conn);
        try
        {
            conn.Open();
        }
        catch (SqlException se)
        {
            throw new InvalidOperationException(String.Format(
                "Connection error: {0} Num:{1} State:{2}",
                se.Message,se.Number, se.State));
        }
        resultVar = (string)cmd.ExecuteScalar().ToString();
        conn.Close();


Answer #3

Tienes que usar un comando y recuperar la variable escalar:

SqlCommand cmd = new SqlCommand(sql, conn);
Int32 count = (Int32)cmd.ExecuteScalar();

Answer #4

Utilice ExecuteScalar

Ejecuta la consulta y devuelve la primera columna de la primera fila en el conjunto de resultados devuelto por la consulta. Se ignoran columnas o filas adicionales.

Int32 colnumber = 0;
string sql = "SELECT count(*) FROM sys.columns";
using (SqlConnection conn = new SqlConnection(connString))
{
    SqlCommand cmd = new SqlCommand(sql, conn);
    try
    {
        conn.Open();
        colnumber = (Int32)cmd.ExecuteScalar();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

Answer #5
string connectionString =
            "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=true";

        // Provide the query string with a parameter placeholder.
        string queryString =
            "SELECT Count(*) from sys.columns";

        // Specify the parameter value.
        int paramValue = 5;

        // Create and open the connection in a using block. This
        // ensures that all resources will be closed and disposed
        // when the code exits.
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            // Create the Command and Parameter objects.
            SqlCommand command = new SqlCommand(queryString, connection);

            // Open the connection in a try/catch block. 
            // Create and execute the DataReader, writing the result
            // set to the console window.
            try
            {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine("\t{0}",
                        reader[0]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }




ado.net