以下代码实现在客户端查询成绩(数据库在服务器端):
客户端:
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;
}