ExecuteNonQuery上的套接字异常

时间:2017-05-02 11:26:08

标签: c# mysql

我遇到以下异常:

  

System.Net.Sockets.SocketException:发送或接收数据的请求   被禁止,因为套接字没有连接(发送时)   在使用sendto调用的数据报套接字上)没有提供地址   在System.Net.Sockets.Socket.Shutdown(SocketShutdown如何)处   MySql.Data.Common.SocketStream.Read(Byte []缓冲区,Int32偏移量,Int32   count)在System.IO.BufferedStream.ReadByte()at   MySql.Data.MySqlClient.PacketReader.ReadHeader()at   MySql.Data.MySqlClient.PacketReader.OpenPacket()at   MySql.Data.MySqlClient.NativeDriver.Open()at   MySql.Data.MySqlClient.MySqlConnection.Open()at   DataAcessLayer.SQLData.ExecuteNonQuery(String sql,MySqlParameter [] p)   在e:Live ApplicationFMSGSFMSApp_CodeDataAccessLayerSQLData.cs:第42行

我正在使用MYSQL.dll进行数据库连接。这个例外是什么意思?如果您需要任何其他信息,请告诉我。

我遇到异常的代码;

public static int ExecuteNonQuery(string sql, MySqlParameter[] p)
    {
        MySqlConnection cnn = new MySqlConnection(strConn);
        int retval = 0;
        try
        {
            cnn.Open(); // this is line no 42 which throws error
            MySqlCommand cmd = new MySqlCommand(sql, cnn);
            if (p == null)
                cmd.CommandType = CommandType.Text;
            else
                cmd.CommandType = CommandType.StoredProcedure;

            if (p != null)
            {
                for (int i = 0; i < p.Length; i++)
                {
                    cmd.Parameters.Add(p[i]);
                }
            }
            retval = cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            if (cnn != null)
            {
                cnn.Close();
            }
            TealErrorLog.addError(4, "SQLData.cs at Line 65; Query:" + sql, ex.ToString() + " Parameters:" + p.ToString(), MySQLCommonFunctions.toMySQLDate(DateTime.Now.ToString()));
        }
        finally
        {
            if (cnn != null)
            {
                cnn.Close();
            }
        }
        return retval;
    }

0 个答案:

没有答案