lin13727561057 2017-08-16 02:09 采纳率: 50%
浏览 929
已采纳

C#Winforms 连接数据库后无法存数据到数据库

我是想把串口收到的数据存放到SQL数据库。串口收到的数据解析后在label控件上显示。我用一个存储过程把label显示的数据存放到数据库里,使用一个Timer控件每隔1秒存一次数据,程序没有任何报错,运行也正常,数据库连接测试也成功,可是就是不能把数据放进数据库,自己弄了好久还是不知道为什么,求大神指点一下。没学过C#,数据库也差不多,东西都是自己模仿别人
的,麻烦懂的朋友帮帮忙。
public string str = new ConnString().str;
private void timer2_Tick(object sender, EventArgs e)
{

        SqlConnection conn = null;
        SqlDataReader rdr = null;

        try
        {
            conn = new SqlConnection(str);
            conn.Open();
            SqlCommand cmd = new SqlCommand("jiedian1Insert", conn);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter pWendu1 =
                new SqlParameter("@pwendu1", SqlDbType.VarChar, 10);
            pWendu1.Direction = ParameterDirection.Input;
            pWendu1.Value = Convert.ToString(wendu1.Text);
            cmd.Parameters.Add(pWendu1);

            SqlParameter pShidu1 =
                    new SqlParameter("@pshidu1", SqlDbType.VarChar, 10);
            pShidu1.Direction = ParameterDirection.Input;
            pShidu1.Value = Convert.ToString(shidu1.Text);
            cmd.Parameters.Add(pShidu1);

            SqlParameter pGuangzhao1 =
                        new SqlParameter("@pguangzhao1", SqlDbType.VarChar, 10);
            pGuangzhao1.Direction = ParameterDirection.Input;
            pGuangzhao1.Value = Convert.ToString(guangzhao1.Text);
            cmd.Parameters.Add(pGuangzhao1);

            SqlParameter pFire1 =
                            new SqlParameter("@pfire1", SqlDbType.VarChar, 10);
            pFire1.Direction = ParameterDirection.Input;
            pFire1.Value = Convert.ToString(fire1.Text);
            cmd.Parameters.Add(pFire1);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
            if (rdr != null)
            {
                rdr.Close();
            }
        }

                    这是存储过程的代码:
                    USE [zigbee]

GO

/****** Object: StoredProcedure [dbo].[jiedian1Insert] Script Date: 2017/8/16 9:50:54 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[jiedian1Insert]
@pwendu1 varchar(10),
@pshidu1 varchar(10),
@pguangzhao1 varchar(10),
@pfire1 varchar(10)

AS
BEGIN
INSERT INTO jiedian1(wendu1,shidu1,guangzhao1,fire1)
VALUES(@pwendu1,@pshidu1,@pguangzhao1,@pfire1)
END

GO


  • 写回答

4条回答 默认 最新

  • Joshua Lai 2017-08-18 09:28
    关注

    哥们,你这抄的相当有水平啊,SqlDataReader这个是查询的时候才用到的。cmd赋值后,你要执行啊cmd.ExecuteNonQuery(),不执行哪里可以提交到数据库. C#数据库中的操作分为几个步骤:1、创建数据库连接。2、打开,3、创建命令(含需要执行的语句,参数等),4、执行。http://blog.sina.com.cn/s/blog_4c79302301000ac0.html参考一下人家的,我随便网上搜的,应该能帮到你

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题