如何将MySql选择转换为字符串?

时间:2012-07-31 21:59:47

标签: c# asp.net

我在ASP.NET C#中使用MySql数据库创建了一个webform。该数据库包含一个名为id的字段,它是主要的,自动增量的,类型为INT。

我想选择一个特定的记录,比如10号,将其转换为字符串,这样我就可以将它与另一个字符串进行比较。

编辑,完整代码:

public partial class index : System.Web.UI.Page
{
    // ConnString

    String SqlConnString;
    String qs;

    private MySqlCommand SqlCommand;
    private MySqlConnection dbConnection;

    protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
    {
        if (Page.IsValid)
        {
            // Variabele

            string textbox = tbTextbox.Text;


            // DbConnection
            SqlConnString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString.ToString();

            SqlCommand = new MySqlCommand();
            dbConnection = new MySqlConnection();
            dbConnection.ConnectionString = SqlConnString;

            // qs
            qs = "INSERT INTO applys" +

                "(textbox, date)" +

                " VALUES (@textbox, NOW() )";

            // Parameters
            SqlCommand.Parameters.Clear();
            SqlCommand.Parameters.AddWithValue("@textbox", date);

            //open database
            dbConnection.Open();
            SqlCommand.CommandText = qs;
            SqlCommand.Connection = dbConnection;

            SqlCommand.ExecuteNonQuery();

            SqlCommand.Dispose();

            dbConnection.Dispose();

            ///////////

            MySqlDataReader reader = null;
            MySqlConnection con = null;
            MySqlCommand cmd = null;
            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            string ConnectionString = "connection string";
            con = new MySqlConnection(ConnectionString);
            string query = "SELECT id FROM apply WHERE id = 10";
            cmd = new MySqlCommand(query);
            cmd.Connection = con;

            try
            {
                // Open Connection
                con.Open();

                // Execute the query
                reader = cmd.ExecuteReader();

                bool found = false;
                while (reader.Read())
                {
                    if (reader["id"].ToString() == "10")
                    {
                        found = true;
                        break;
                    }
                }
                if (found)
                {
                    ltl.Text = "Worked!";
                    //Response.Redirect("different page");
                }
                else

                    ltl.Text = "Nope";
                    //Response.Write("Nothing!");

            }
            catch
            {                
                // MessageBox.Show("Error!");
            }

            int id = -1;
            id = (Int32)cmd.ExecuteScalar();
            if (id != -1)

                ltl.Text = "Worked!";
                //Response.Redirect("different page");

            reader.Dispose();
            reader.Close();
            con.Dispose();
            con.Close();
            cmd.Connection.Close();
            cmd.Dispose();


        }
    }
}

2 个答案:

答案 0 :(得分:0)

您必须仔细执行此步骤:

SqlDataReader rdr = null;
SqlConnection con = null;
SqlCommand cmd = null;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
string ConnectionString = "server=.;uid=sa; pwd=123; database=MyDB";
con = new SqlConnection(ConnectionString);
string query = "SELECT id FROM applys WHERE id = 10";
cmd = new SqlCommand(query);
cmd.Connection = con;

try
{
    // Open Connection
    con.Open();

    // Execute the query
    reader = cmd.ExecuteReader();

    bool found=false;
    while(reader.Read())
    {
        if (reader["UserName"].ToString()=="Ram")
        {
            found=true;
            break;
        }
    }
    if (found)
    {
        Response.Redirect("different page");
    }

    else
        Response.Write("Nothing!");
}
catch{
    MessageBox.Show("Error!");
}

同样在您的情况下,您可以使用ExecuteScalar()。它将在SELECT语句的第一行,第一列中返回单个值:

int id=-1;
id=(Int32)cmd.ExecuteScalar();
if (id!=-1)
    Response.Redirect("different page");

答案 1 :(得分:0)

var query = "SELECT id FROM applys WHERE id = 10";
var connectionString = "yourmysqlconnectionstringgoeshere";
using(var connection=new MySqlConnection(connectionString))
{
    connection.Open();
    using (var reader = new MySqlCommand(query, connection).ExecuteReader())
    {
        if(reader.Read())
        {
            if (reader["id"].ToString() =="10")
            {
                // do your stuff here
            }
        }
    }
}