using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using Microsoft.Win32;
using System.Data;
using System.Collections; public class DoTrans
{
//执行事务处理
string connStr;
SqlConnection myConn;
public DoTrans()
{
connStr = "Data Source=.;Initial Catalog=QQ;Integrated Security=True;";//User ID=sa;Password=
myConn = new SqlConnection(connStr);
}
public DoTrans(string s)
{
connStr = s;
myConn = new SqlConnection(connStr);
}
public bool DoTran(string transactionString)
{ //建立连接并打开 myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.Serializable, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
myComm.CommandText = transactionString;
int i= myComm.ExecuteNonQuery();
//提交事务
myTran.Commit();
if (i == 1) return true;
else
return false; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
myTran.Rollback();
return false;
}
finally
{
myConn.Close();
} }
public bool DoManyTran(string[] tranStrs)
{ //建立连接并打开
int ii = 0;
myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.Serializable, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
if (tranStrs != null)
{
for (int i = 0; i < tranStrs.Length; i++)
{
myComm.CommandText = tranStrs[i];
ii=myComm.ExecuteNonQuery();
}
}
//提交事务
myTran.Commit();
return true; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
myTran.Rollback("begin");
return false;
}
finally
{
myConn.Close();
} }
public bool DoManyTran(Hashtable sqls)
{
//建立连接并打开 myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.Serializable, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
if (sqls.Count > 0)
{
for (int i = 1; i <= sqls.Count; i++)
{
myComm.CommandText = (string)sqls[i.ToString()];
int m = myComm.ExecuteNonQuery();
}
}
//提交事务
myTran.Commit();
return true; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
myTran.Rollback("begin");
return false;
}
finally
{
myConn.Close();
}
}
public DataTable SelTran(string transactionString)
{
//建立连接并打开 myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
DataTable ds = new DataTable();
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
myComm.CommandText = transactionString;
SqlDataAdapter sda = new SqlDataAdapter(myComm);
sda.Fill(ds);
//提交事务
myTran.Commit();
return ds; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
return null;
}
finally
{
myConn.Close();
}
}
} }
哪错了啊 为什么就是连接上数据但是我却无法运行呢?
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using Microsoft.Win32;
using System.Data;
using System.Collections; public class DoTrans
{
//执行事务处理
string connStr;
SqlConnection myConn;
public DoTrans()
{
connStr = "Data Source=.;Initial Catalog=QQ;Integrated Security=True;";//User ID=sa;Password=
myConn = new SqlConnection(connStr);
}
public DoTrans(string s)
{
connStr = s;
myConn = new SqlConnection(connStr);
}
public bool DoTran(string transactionString)
{ //建立连接并打开 myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.Serializable, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
myComm.CommandText = transactionString;
int i= myComm.ExecuteNonQuery();
//提交事务
myTran.Commit();
if (i == 1) return true;
else
return false; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
myTran.Rollback();
return false;
}
finally
{
myConn.Close();
} }
public bool DoManyTran(string[] tranStrs)
{ //建立连接并打开
int ii = 0;
myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.Serializable, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
if (tranStrs != null)
{
for (int i = 0; i < tranStrs.Length; i++)
{
myComm.CommandText = tranStrs[i];
ii=myComm.ExecuteNonQuery();
}
}
//提交事务
myTran.Commit();
return true; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
myTran.Rollback("begin");
return false;
}
finally
{
myConn.Close();
} }
public bool DoManyTran(Hashtable sqls)
{
//建立连接并打开 myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.Serializable, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
if (sqls.Count > 0)
{
for (int i = 1; i <= sqls.Count; i++)
{
myComm.CommandText = (string)sqls[i.ToString()];
int m = myComm.ExecuteNonQuery();
}
}
//提交事务
myTran.Commit();
return true; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
myTran.Rollback("begin");
return false;
}
finally
{
myConn.Close();
}
}
public DataTable SelTran(string transactionString)
{
//建立连接并打开 myConn.Open(); SqlCommand myComm = new SqlCommand();
SqlTransaction myTran;
DataTable ds = new DataTable();
//创建一个事务
myTran = myConn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted, "begin");
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection = myConn;
myComm.Transaction = myTran;
try
{
myComm.CommandText = transactionString;
SqlDataAdapter sda = new SqlDataAdapter(myComm);
sda.Fill(ds);
//提交事务
myTran.Commit();
return ds; }
catch (Exception err)
{
//更新错误,回滚到指定存储点
return null;
}
finally
{
myConn.Close();
}
}
} }
哪错了啊 为什么就是连接上数据但是我却无法运行呢?
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Collections;
namespace tcpS
{
public partial class Form1 : Form
{
Hashtable onLineUsers;
TcpListener listener;
Thread listenThread;
delegate void DelCls1(string x);
DelCls1 listView1AppendDel;
DoTrans dotrans;
public Form1()
{
InitializeComponent();
onLineUsers = new Hashtable();
listener = new TcpListener(6666);
listenThread =
new Thread(new ThreadStart(listen));
dotrans = new DoTrans();
listView1AppendDel = new DelCls1(listViewAppend);
}
/// <summary>
/// 监听6666端口,接受所有客户端程序的链接请求
/// 建立通信信道
/// </summary>
private void listen()
{
listener.Start();//开始监听6666,看有人连我么
while (true)
{
TcpClient client = listener.AcceptTcpClient();//阻塞
listBox1.Invoke(listView1AppendDel, "某个客户端已经连上");
Thread serviceT =
new Thread(new ParameterizedThreadStart(service));
serviceT.Start(client);
}
}
private void listViewAppend(string message)
{
listBox1.Items.Add(message);
}
/// <summary>
/// 为C提供它所要求的服务
/// </summary>
/// <param name="C"></param>
private void service(object bj)
{
TcpClient C = bj as TcpClient;
NetworkStream ns = C.GetStream();
byte[] mss;
byte[] replay;
while (true)
{
mss = new byte[1024];
try
{
ns.Read(mss, 0, 1024);
string message = Encoding.UTF8.GetString(mss);
string[] ms = message.Split(new char[] { '^' });
switch (ms[0])
{
case "login"://login^zjl^123^
DataTable dt = dotrans.SelTran("select * from users where tpwd='" + ms[1] + "'");
if (dt == null || dt.Rows.Count == 0)
{//无此用户
replay = Encoding.UTF8.GetBytes("login^nouser^");
listBox1.Invoke(listView1AppendDel,"以不存在的用户名登录:"+ms[1]);
}
else
{
if (dt.Rows[0]["password"].ToString() == ms[2])
{//登录成功
replay = Encoding.UTF8.GetBytes("login^ok^");
onLineUsers.Add(ms[1], C);
listBox1.Invoke(listView1AppendDel, "正确登录:" + ms[1]);
}
else
{//密码错误
replay = Encoding.UTF8.GetBytes("login^pwdWrong^");
listBox1.Invoke(listView1AppendDel, "以用户名"+ ms[1]+"登录,但密码错误!!" );
}
}
ns.Write(replay, 0, replay.Length);
ns.Flush();
break;
case "chat"://chat^zjl^awg^safsa^
TcpClient tempTC = onLineUsers[ms[2]] as TcpClient;
NetworkStream tempNS = tempTC.GetStream();
ns.Write(mss, 0, mss.Length);
listBox1.Invoke(listView1AppendDel, ms[1]+"对"+ms[2]+"说:"+ms[3]);
break;
case "quit":
onLineUsers.Remove(ms[1]);
listBox1.Invoke(listView1AppendDel, ms[1] + "退出了!!");
break;
case "adduser"://adduser^zjl^123^张飞^
if (dotrans.DoTran("insert into users values('" + ms[1] + "','" + ms[3] + "','" + ms[2] + "')"))
{
replay = Encoding.UTF8.GetBytes("adduser^ok^");
listBox1.Invoke(listView1AppendDel, "以用户名" + ms[1] + "注册成功!!");
}
else
{
replay = Encoding.UTF8.GetBytes("adduser^error^");
listBox1.Invoke(listView1AppendDel, "以用户名" + ms[1] + "注册不成功!!");
}
ns.Write(replay, 0, replay.Length);
ns.Flush();
break;
case "refreshU"://UserList^zjl^awg^zj^zxm^....
//onLineUsers的key:所有在线用户的编号
string replayStr = "UserList^";
foreach (object obj in onLineUsers.Keys)
{
replayStr += obj.ToString() + "^";
}
replay = Encoding.UTF8.GetBytes(replayStr);
ns.Write(replay, 0, replay.Length);
ns.Flush();
listBox1.Invoke(listView1AppendDel, "某用户请求更新在线用户列表!");
break;
}
}
catch { }
}
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add( "服务器已经启动!");
listenThread.Start();