C#串口接受数据如何插入数据库
我想把数据缓冲区的字节到达70字节(完整的信息)之后就把它用builder.ToString().Substring()方法插入数据库的各个列中,但是下面你的方法数据库中...
我想把数据缓冲区的字节到达70字节(完整的信息)之后就把它用 builder.ToString().Substring()方法插入数据库的各个列中,但是下面你的方法数据库中数据插不进去而且报操作超时,有没大神帮我改改。
展开
展开全部
if (SerialPort.GetPortNames().Length == 0)
{
MessageBox.Show("没有检测到串口设备!");
}
else
{
port = GetAppConfig("ComPort");
SerialPortHelper.PortName = port;
SerialPortHelper.BaudRate = rate;
SerialPortHelper.StopBit = stop;
SerialPortHelper.RecieveDataEvent += new SerialPortHelper.RecieveData(RecieveData);
SerialPortHelper.Init();
SerialPortHelper.Start();
}
void RecieveData(byte[] data)
{
ASCIIEncoding encoding = new ASCIIEncoding();
string str = encoding.GetString(data);
if (!string.IsNullOrEmpty(str))
{
InsertData(str);
}
}
private void InsertData(string str)
{
try
{
lock (str)
{
if (str.Length < 32)
return;
//解析 并插入数据库
...
}
}
catch (Exception ex)
{
define.msg.Text = "解析数据" + ex.ToString();
define.log.Write(define.msg);
}
}
这是我以前项目的代码,你看看,希望对你有帮助
{
MessageBox.Show("没有检测到串口设备!");
}
else
{
port = GetAppConfig("ComPort");
SerialPortHelper.PortName = port;
SerialPortHelper.BaudRate = rate;
SerialPortHelper.StopBit = stop;
SerialPortHelper.RecieveDataEvent += new SerialPortHelper.RecieveData(RecieveData);
SerialPortHelper.Init();
SerialPortHelper.Start();
}
void RecieveData(byte[] data)
{
ASCIIEncoding encoding = new ASCIIEncoding();
string str = encoding.GetString(data);
if (!string.IsNullOrEmpty(str))
{
InsertData(str);
}
}
private void InsertData(string str)
{
try
{
lock (str)
{
if (str.Length < 32)
return;
//解析 并插入数据库
...
}
}
catch (Exception ex)
{
define.msg.Text = "解析数据" + ex.ToString();
define.log.Write(define.msg);
}
}
这是我以前项目的代码,你看看,希望对你有帮助
追问
你这个是ASCII码接受的啊 有木有16进制的解码判断长度的代码啊
追答
接收的是byte数组,自己转换,我转的是string这个根据自己需要
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询