SQL 连接已打开,但此处未阅读

本文关键字:连接 SQL | 更新日期: 2023-09-27 18:36:54

连接对象和一些 ado.net 部分在插入数据时出现一些错误,首先这是我的PHP编码部分。在这里,我将把php编码转换为.net

openConn();
//<user> slett <slettID>
if((sizeof($MessageArray)==3) && (strtolower($MessageArray[1])=='slett'))
 {
$user_id=$MessageArray[2];
if ((int)$user_id > 0)
{
    $username=$MessageArray[0];
    $QueryCheckMak = "SELECT COUNT(*) FROM XYZ WHERE id='$user_id'";
    $QueryCheckMak = odbc_exec($conn, $QueryCheckMak) or die("Query error");
    $user_number = odbc_result($QueryCheckMak, 1);
    if($user_number=="0")
    {
        $message_out = "SOME ERROR OUT ";
    }

下面的编码是我尝试转换它。我成功地将部分和字符串的大小转换为小写部分,下面在这里编码部分用于ODBC连接,但就我而言,我起诉SQL服务器连接

public partial class SeenSMS : System.Web.UI.UserControl
{
    public SqlConnection mycon;
    SqlConnection con = new SqlConnection(@"Data Source=DSOFT'DOMZ;Initial                 Catalog=Vilt;UserID=sa;Password=sa123");

    protected void Page_Load(object sender, EventArgs e)
    {
        string[] msg_arr = Request.QueryString["arr"].Split('|');
        if (!IsPostBack)
        {
            string Moose = Request.QueryString[1];
        }
        if (msg_arr != null)
        {
            if ((msg_arr.Length == 3) && (msg_arr[1].ToLower() == "slett"))
            {
                int user_id = Convert.ToInt32(msg_arr[2]); 
                if(user_id > 0)
                {
                    string username = msg_arr[0]; 
                    SqlDataReader rdr = null;
                    con.open();
                    SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM XYZ WHERE id='$user_id",con);
                    if(user_number =='0')
                       {
                     Response.WriteLine("ERROR");
                     // else part here
                    }
                }
            }

        }
    }

SQL 连接已打开,但此处未阅读

使用这种类型的语法,using块将自动释放范围末尾的对象

public partial class SeenSMS : System.Web.UI.UserControl
{
    string connectionString = "Data Source=DSOFT'DOMZ;Initial Catalog=Vilt;UserID=sa;Password=sa123";
    protected void Page_Load(object sender, EventArgs e)
    {
        ....       
        using (SqlConnection con = new SqlConnection(connectionString))
        {
            con.Open();
            using (SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM TableName WHERE id='" +user_id +"', con))
            using (SqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    response.Write(reader.GetInt32(0), reader.GetString(1), reader.GetString(2));
                }
            }
        }
        ....
    }
}

试试这个:

 SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM XYZ WHERE user_id=@user_id,con));
 oCmd.Parameters.AddWithValue("@user_id", user_id);
 int user_number = 0;                 
 con.open();
   using (SqlDataReader oReader = cmd.ExecuteReader())
            {                   
                while (oReader.Read())
                {
                   user_number =Convert.ToInt32(oReader["count"]);                                                           
                }
                myConnection.Close();
            }                   

           if(user_number == 0)
                   {
                 Response.WriteLine("ERROR");
                 // else part here
                }