我要把一个大DataTable 作为消息参数传递到MSMQ
string queuename = ".\\private$\\testQueue";//队列名称
MessageQueue q;
if (MessageQueue.Exists(queuename))
{
q = new System.Messaging.MessageQueue(queuename);
}
else
{
q = MessageQueue.Create(queuename);
} //
string strconn = string.Format("server=192.168.0.50;database=RIS;uid=sa;pwd=sql2005");
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand("select * from test1", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("temptable");
da.Fill(dt); //
System.Messaging.Message m = new System.Messaging.Message();
//m.Label = ; //描述消息的字串
Msg msg = new Msg();
msg.ID = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
msg.Label = this.textBox2.Text;
msg.Body = this.textBox1.Text;
msg.OtherInfo = dt;
m.Body = msg; //消息的主体
q.Send(m); //发送//生成 XML 文档时出错
string queuename = ".\\private$\\testQueue";//队列名称
MessageQueue q;
if (MessageQueue.Exists(queuename))
{
q = new System.Messaging.MessageQueue(queuename);
}
else
{
q = MessageQueue.Create(queuename);
} //
string strconn = string.Format("server=192.168.0.50;database=RIS;uid=sa;pwd=sql2005");
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand("select * from test1", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("temptable");
da.Fill(dt); //
System.Messaging.Message m = new System.Messaging.Message();
//m.Label = ; //描述消息的字串
Msg msg = new Msg();
msg.ID = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
msg.Label = this.textBox2.Text;
msg.Body = this.textBox1.Text;
msg.OtherInfo = dt;
m.Body = msg; //消息的主体
q.Send(m); //发送//生成 XML 文档时出错
public bool Send(DataSet InDataSet)
{
try
{
lock (this._lock)
{
//创建消息队列
if (!MessageQueue.Exists(this.Path))
{
this.queue = MessageQueue.Create(this.Path);
this.queue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
}
else
{
this.queue = new MessageQueue(this.Path);
} if (this.queue == null)
{
this.queue = new MessageQueue(this.Path);
}
//设置消息格式
this.queue.Formatter = new BinaryMessageFormatter(); //new XmlMessageFormatter(new Type[] { typeof(DataSet) }); //消息体
System.Messaging.Message msg = new System.Messaging.Message();
msg.Body = InDataSet;
//发送
this.queue.Send(msg);
return true;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}