C# アプリケーションを Web サーバー データベース (mysql) に接続しようとしています。次のコードを使用しています。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace mySqlConnectivity
{
public partial class Form1 : Form
{
string myConStr;
public Form1()
{
InitializeComponent();
myConStr = "SERVER=xxx.xx.xxx.xx;Port=80;DATABASE=EmSystem;UID=xxx;PASSWORD=xxx;compress=true";
}
private void button1_Click(object sender, EventArgs e)
{
int mobNo;
string mobile = textBox3.Text;
int.TryParse(mobile, out mobNo);
MySqlConnection conn = new MySqlConnection(myConStr);
MySqlCommand cmd;
conn.Open();
try
{
cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO phonebook(Id,uname,MobileNo) VALUES(@id,@uname,@MobileNo)";
cmd.Parameters.AddWithValue("@Id", int.Parse(textBox1.Text));
cmd.Parameters.AddWithValue("@uname", textBox2.Text);
cmd.Parameters.AddWithValue("@MobileNo", mobNo);
cmd.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
}
}
このコードはローカル サーバー データベースで機能していますが、Web サーバー データベースに接続しようとすると、次のエラーが発生します。
MySql.Data.MySqlClient.MySqlException: Reading from the stream has failed. ---> System.IO.IOException: Unable to read data from the transport connection: A non-blocking socket operation could not be completed immediately. ---> System.Net.Sockets.SocketException: A non-blocking socket operation could not be completed immediately
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at MySql.Data.Common.MyNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.MySqlStream.LoadPacket()
--- End of inner exception stack trace ---
at MySql.Data.MySqlClient.MySqlStream.LoadPacket()
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at mySqlConnectivity.Form1.button1_Click(Object sender, EventArgs e) in D:\VS\mySqlConnectivity\mySqlConnectivity\Form1.cs:line 35
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
これを使用してmysqlサーバーデータベースにアクセスできるため、IPアドレスとポートは正しいです。
どこに問題があるのか 、C#アプリケーションをWebサーバーデータベースに接続する他の方法があるのか 教えてください。
どんな助けでも大歓迎です。
ありがとうございました