以下代碼實現在客戶端查詢成績(數據庫在服務器端):
?客戶端:
???????static void Main(string[] args)
??????? {
??????????? string str = null;
??????????? while (str != Convert.ToString(0))
??????????? {
??????????????? Console.WriteLine("輸入你要查詢的課程名稱:");
??????????????? str = Console.ReadLine();
??????????????? send(str);
??????????? }
??????????? Console.Read();
??????? }
??????? private static void send(string sendstr)
??????? {
??????????? TcpClient client = new TcpClient("127.0.0.1", 5000);
??????????? NetworkStream ns = client.GetStream();
??????????? byte[] btsend = Encoding.UTF8.GetBytes(sendstr);
??????????? try
??????????? {
??????????????? ns.Write(btsend, 0, btsend.Length);
??????????? }
??????????? catch (SocketException sex)
??????????? {
??????????????? Console.WriteLine(sex.Message);
??????????? }
??????????? byte[] btrec = new byte[50];
??????????? ns.Read(btrec, 0, btrec.Length);
??????????? string recstr = Encoding.UTF8.GetString(btrec);
??????????? Console.WriteLine(DateTime.Now.ToShortTimeString() + "/nServer: " + recstr);
??????????? ns.Close();
??????????? client.Close();
??????? }
?
服務器端:
????????private static SqlConnection con = new SqlConnection("server=LISHIC;uid=sa;pwd=;database=exceltosql");
??????? private static SqlCommand cmd = new SqlCommand();
??????? static void Main(string[] args)
??????? {
??????????? IPAddress ipc = IPAddress.Parse("127.0.0.1");
??????????? TcpListener listener = new TcpListener(ipc, 5000);
??????????? listener.Start();
??????????? while (true)
??????????? {
??????????????? TcpClient tc = listener.AcceptTcpClient();
??????????????? NetworkStream ns = tc.GetStream();
??????????????? byte[] btfromc = new byte[100];
??????????????? ns.Read(btfromc, 0, btfromc.Length);
??????????????? string strfromc = Encoding.UTF8.GetString(btfromc);
??????????????? Console.WriteLine(DateTime.Now.ToShortTimeString() + "/nClient: " + strfromc);
??????????????? byte[] btback = Encoding.UTF8.GetBytes(getgrade(strfromc));
??????????????? ns.Write(btback, 0, btback.Length);
??????????????? ns.Close();
??????????????? tc.Close();
??????????? }
??????? }
??????? private static string getgrade(string str)
??????? {
??????????? string strreturn = null;
??????????? cmd.Connection = con;
??????????? cmd.CommandText = "select * from grade where courses like '" + str + "'" ;
??????????? con.Open();
??????????? SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
??????????? if (reader.Read())
??????????? {
??????????????? strreturn = "課程名稱: " + reader.GetString(1) + "/n學分: " + reader["credit"].ToString() + "/n成績: " + reader.GetInt32(5);
??????????? }
??????????? else
??????????? {
??????????????? strreturn = "沒有符合要求的科目";
??????????? }
??????????? con.Close();
??????????? return strreturn;
??????? }