我在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();
}
}
}
答案 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
}
}
}
}