web-dev-qa-db-de.com

Wie kann ich ein SQL-Ergebnis in eine STRING-Variable bekommen?

Ich versuche, das SQL-Ergebnis in einer C # -Stringvariablen oder einem String-Array zu erhalten. Ist es möglich? Muss ich SqlDataReader irgendwie benutzen? Ich bin sehr neu in C # -Funktionen und allen anderen, die für die Arbeit in PHP verwendet wurden. Geben Sie daher bitte ein funktionierendes Beispiel an, wenn Sie können um das Ergebnis in einer Stringvariablen zu speichern).

4
Vantalk

Dies ist nicht das beste Beispiel in der Geschichte. Wenn Sie keine Zeilen aus der Datenbank zurückgeben, erhalten Sie eine Ausnahme, aber wenn Sie eine gespeicherte Prozedur aus der Datenbank verwenden möchten, anstatt eine SELECT auszuführen. Anweisung direkt aus Ihrem Code, dann können Sie eine Zeichenfolge zurückgeben:

public string StringFromDatabase()
    {
        SqlConnection connection = null;

        try
        {
            var dataSet = new DataSet();

            connection = new SqlConnection("Your Connection String Goes Here");
            connection.Open();

            var command = new SqlCommand("Your Stored Procedure Name Goes Here", connection)
            {
                CommandType = CommandType.StoredProcedure
            };

            var dataAdapter = new SqlDataAdapter { SelectCommand = command };

            dataAdapter.Fill(dataSet);

            return dataSet.Tables[0].Rows[0]["Item"].ToString();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message, ex);
        }
        finally
        {
            if (connection != null)
            {
                connection.Close();
            }
        }
    }

Es kann definitiv verbessert werden, aber es gibt Ihnen einen Ausgangspunkt, von dem aus Sie arbeiten können, wenn Sie eine Route mit gespeicherten Prozeduren abfahren möchten.

5
Pete Ebdon

Versuche dies:

SqlConnection con=new SqlConnection("/*connection string*/");               
SqlCommand SelectCommand = new SqlCommand("SELECT email FROM table1", con);
SqlDataReader myreader;
con.Open();

myreader = SelectCommand.ExecuteReader();

List<String> lstEmails=new List<String>();
while (myreader.Read())
 {
    lstEmails.Add(myreader[0].ToString());
    //strValue=myreader["email"].ToString();
    //strValue=myreader.GetString(0);
 }
con.Close();

zugriff auf die E-Mails aus der Liste
lstEmails[0]-> erste E-Mail
lstEmails[1]-> zweite E-Mail

...usw.,

2

Sie könnten einen SQL-Datenleser verwenden :

string sql = "SELECT email FROM Table WHERE Field = @Parameter";
string variable;
using (var connection = new SqlConnection("Your Connection String"))
using (var command = new SqlCommand(sql, connection))
{
    command.Parameters.AddWithValue("@Parameter", someValue);
    connection.Open();
    using (var reader = command.ExecuteReader())
    {
        //Check the reader has data:
        if (reader.Read())
        {
            variable = reader.GetString(reader.GetOrdinal("Column"));
        }
        // If you need to use all rows returned use a loop:
        while (reader.Read())
        {
            // Do something
        }
    }
}

Oder Sie könnten SqlCommand.ExecuteScalar () verwenden.

string sql = "SELECT email FROM Table WHERE Field = @Parameter";
string variable;
using (var connection = new SqlConnection("Your Connection String"))
using (var command = new SqlCommand(sql, connection))
{
    command.Parameters.AddWithValue("@Parameter", someValue);
    connection.Open();
    variable = (string)command.ExecuteScalar();
}
1
GarethD

Dies kann Ihnen bei MySQL helfen

MySqlDataReader reader = mycommand.ExecuteReader();
while (reader.Read())
{
  TextBox2.Text = reader.ToString();
}

Für SQL

using (SqlCommand command = new SqlCommand("*SELECT QUERY HERE*", connection))
{
//
// Invoke ExecuteReader method.
//
SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        TextBox2.Text = reader.GetString(0);
    }
}
0
Prashanth

Versuche dies:

public string SaveStringSQL(string pQuery, string ConnectionString)
{
    var connection = new Conexao(ConnectionString);
    connection.Open();

    SqlCommand command = new SqlCommand(pQuery, connection.Connection);
    var SavedString = (string)command.ExecuteScalar();

    connection.Close();

    return SavedString;
}

Die Funktion ExecuteScalar speichert alle Arten von Daten in Ihrer Datenbank - Sie müssen sie nur angeben.

Beachten Sie, dass jeweils nur eine Zeile gespeichert werden kann.

0
Felipe