RT
串口接收代码如下:
StringBuilder builder = new StringBuilder();//创建可变字符串类
int n = serialPort1.BytesToRead;//定义每次读取的缓存字节长度
Byte[] bytes = new Byte[n];//定义字节数组,长度为接收的缓存字节
serialPort1.Read(bytes, 0, n);
builder.Clear();//每次读取后都清除一次字符串类中的数据
builder.Append(Encoding.ASCII.GetString(bytes));//向字符串类添加收到的字节(转)
txtReceiveData.AppendText(builder.ToString()+" ");//将字符串添加到文本框中
假如数据库(名称为TB0)一共有10行,第一列是代号(已通过建立datagridview1和存储过程存入数据库,列名为C1),第二列是想接收的数据(列名为C2)。就是想知道如和把每次接收的数据传递到数据库中????。。
貌似接收也少加了个接收10次后停止接收的方法。
以上是问题的描述
------解决思路----------------------
写个入库的函数,将你每次接收的数据对应入库就是
入库方法类似如下:
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=table;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand(string.Format("select Count(*) form table where data= '{0}'", textBox.Text), con);
if ((int)cmd.ExecuteScalar() > 0)
{
MessageBox.Show("数据已经存在", "提示");
}
else
{
string sql = "insert into table(data) values('" + textBox.Text + "')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox.Show("成功添加");
}
------解决思路----------------------
这样的需求得用update语句了,代码基本和2楼给出的一样,只是将insert语句改为update。同时,你要考虑每次第二列所谓的录入数据是否要和第一列一一对应(相应的加where条件子句)