首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用postgresql和C3

使用postgresql和C3
EN

Stack Overflow用户
提问于 2014-07-31 03:14:06
回答 1查看 66关注 0票数 0

我有一个关于postgresql中的多个表和在C#中使用sql语句的问题。我有两张桌子

代码语言:javascript
运行
复制
CREATE TABLE "Board"
(
  board_id bigserial NOT NULL,
  board_serial_number integer NOT NULL,
  CONSTRAINT "Board_pkey" PRIMARY KEY (board_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE "Board"
  OWNER TO postgres;

CREATE TABLE "Defect"
(
  defect_id bigserial NOT NULL,
  defect_type text,
  ref_des text,
  board_id integer,
  CONSTRAINT "Defect_pkey" PRIMARY KEY (defect_id),
  CONSTRAINT "Defect_board_id_fkey" FOREIGN KEY (board_id)
      REFERENCES "Board" (board_id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);

我有一个数据输入表单,总是让用户输入序列号,并输入缺陷类型和ref_Des (代表参考描述或电路板上的零件位置)。

用户可以输入一个缺陷,然后单击一个按钮将该缺陷添加到缺陷表中,用户可以多次执行此操作以添加其他缺陷。

当用户单击保存时,我如何将序列号绑定到添加的所有缺陷?我是数据库编程的新手,我似乎不能理解它,或者如果我使它变得更加困难。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2014-07-31 04:47:35

我想,我不知道这样做是否最有效,但这是我的代码。你怎么认为。我欢迎建设性的批评:)

代码语言:javascript
运行
复制
 private void addDefect()
    {
        try
        {
            NpgsqlConnection conn = Connection.getConnection();
            conn.Open();

            DefectType = cboDefectType.Text;
            ResDes = txtRefDes.Text;

            NpgsqlCommand cmd2 = new NpgsqlCommand("select * from \"Board\" where \"board_serial_number\" = :SerialNumber;", conn);
            cmd2.Parameters.Add(new NpgsqlParameter("SerialNumber", SerialNumber));

            NpgsqlDataReader dr = cmd2.ExecuteReader();

            if (dr.Read())
            {
                DefectBoardID = dr.GetInt64(0);
                cmd2.Dispose();
                dr.Dispose();
                conn.Close();

            }

            conn.Open();
            NpgsqlCommand cmd = new NpgsqlCommand("insert into \"Defect\"(\"defect_type\",\"ref_des\",\"board_id\")" +
                "Values(:DefectType,:RefDes,:BoardID);", conn);


            cmd.Parameters.Add(new NpgsqlParameter("DefectType", DefectType));
            cmd.Parameters.Add(new NpgsqlParameter("RefDes", ResDes));
            cmd.Parameters.Add(new NpgsqlParameter("BoardID", DefectBoardID));


            int recordInserted = cmd.ExecuteNonQuery();

            if (recordInserted == 1)
            {
                lblError.Text = "Defects Added to Board" + SerialNumber + "!";
            }
            else
            {
                lblError.Text = "Defects were not added to Board" + SerialNumber + "!";
            }
            conn.Close();
            cmd.Dispose();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25045061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档