问题 在DataGridView中显示福彩12选5走势图

安德鲁manuja.

众所周知的成员
加入
2019年5月30日
消息
75
编程经验
Beginner
大家好,
我正在尝试围绕三层架构如何使用示例示例来抬头。
我能够将福彩12选5走势图放在演示层,form_load事件上。
请参阅以下代码,
C#:
  ClassBusinessLayer objLogic;

        private void Product_Details_Load(object sender, EventArgs e)
        {
            objLogic = new ClassBusinessLayer();
            dataGridViewProducts.DataSource = objLogic.LoadProduct();          
        }
创建ClassBusinessLayer Objlogic以通过对象从业务层访问福彩12选5走势图。
当我添加断点时,
C#:
dataGridViewProducts.DataSource = objLogic.LoadProduct();
我正在下面得到结果,

1583898276089.png


但是,当我运行代码时,我没有将填充到命名的DataGridView的福彩12选5走势图"DataGridViewProducts.".
请欣赏您宝贵的反馈。

谢谢你。
亲切的问候,
安德鲁
 
Last edited:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,692
地点
悉尼,澳大利亚
编程经验
10+
您说在添加断点时会发生某些事情,但在运行代码时不会发生一些事情。似乎建议您认为断点时,您不会运行代码。那不是这种情况。您可以获得代码的唯一方法是运行它。问题是您是通过调试器还是直接运行它,如果在调试器中,是不是使用断点。所以,你是说你可以用断点在调试器中运行代码,查看预期福彩12选5走势图,但没有断点你没有看到福彩12选5走势图?你是说,无论发生断点,都在调试器中运行代码是否正常工作,但不在运行发布版本时?别的东西?

无论如何,在这样的情况下,在发布此处之前,您可以为自己为自己做些什么,这意味着如果您仍然需要在这里发布,您可以提供更多信息。您可以添加日志记录代码以告诉您执行的位置,如果您无法使用调试器观看,则使用哪些福彩12选5走势图。您可以检查连接字符串以确保它们在所有情况下都有效。 ETC。
 

安德鲁manuja.

众所周知的成员
加入
2019年5月30日
消息
75
编程经验
Beginner
嗨jmplhinney,
我所说的是,当我在调试器模式下运行代码时,添加一个断点时,当我运行相应的命令行时,
C#:
dataGridViewProducts.DataSource = objLogic.LoadProduct();
并在执行上述命令行后检查结果,显示预期结果。
但是,如果我不是在调试器模式(没有添加断点),程序会在没有任何错误的情况下执行,但不会将福彩12选5走势图填充到DataGridView上。

1583900941285.png.


希望这个问题很清楚。连接字符串工作正常。

感谢您的反馈。
问候,
安德鲁
 

安德鲁manuja.

众所周知的成员
加入
2019年5月30日
消息
75
编程经验
Beginner
嗨jmplhinney,
请在此找到附加的项目代码。
与data_layer相关的代码如下;
笔记
我在AppConfig文件中创建了连接字符串并将其调用在data_layer中。
C#:
 public class Connection
    {
        private string conn = ConfigurationManager.ConnectionStrings["InventoryConn"].ToString();

        public void InsertUpdateDeleteSQLString(string sqlstring)
        {
            SqlConnection objsqlconn = new SqlConnection(conn);
            objsqlconn.Open();
            SqlCommand objcmd = new SqlCommand(sqlstring, objsqlconn);
            objcmd.ExecuteNonQuery();
        }

        public object ExecuteSqlString(string sqlstring)
        {
            SqlConnection objsqlconn = new SqlConnection(conn);
            objsqlconn.Open();
            DataSet ds = new DataSet();
            SqlCommand objcmd = new SqlCommand(sqlstring, objsqlconn);
            SqlDataAdapter objAdp = new SqlDataAdapter(objcmd);
            objAdp.Fill(ds);
            return ds;
        }

        public void AddNewProductDB(string Product_ID, string Product_Name, int Product_Sales_Price)
        {
            DataSet ds = new DataSet();
            string sql = "INSERT into tbl_Product (Prod_ID,Prod_Name,Sales_Price) VALUES ('"+ Product_ID + "', '"+ Product_Name + "', '"+ Product_Sales_Price + "')";
           
            InsertUpdateDeleteSQLString(sql);
        }
     
        public object LoadProductDB()
        {
            DataSet ds = new DataSet();
            string sql = "SELECT * from tbl_Product order by Prod_ID";
            ds = (DataSet)ExecuteSqlString(sql);
            return ds;
        }
    }

Business_Layer的代码如下;
C#:
 public class ClassBusinessLayer
    {      
        public Connection objDataLayer = new Connection();
       
        public void AddNewProduct(string Product_ID, string Product_Name, int Product_Sales_Price)
        {
            objDataLayer.AddNewProductDB(Product_ID, Product_Name, Product_Sales_Price);
        }    

        public object LoadProduct()
        {
            return objDataLayer.LoadProductDB();
        }
    }

最后,呈现_Layer代码如下;
C#:
ClassBusinessLayer objLogic;

        private void Product_Details_Load(object sender, EventArgs e)
        {
            dataGridViewProducts.Rows.Clear();
            objLogic = new ClassBusinessLayer();
            dataGridViewProducts.DataSource = objLogic.LoadProduct();
        }
此外,我将Data_Layer称为Business_Layer和Business_Layer中的库作为呈现_Layer中的库。

我是缺少一些东西的值对象,其中值在Business_Layer和Presentation_Layer之间传递的值"get" and "set" methods?

期待收到您的回复我可能在这里做的错误。

谢谢你。

亲切的问候,

安德鲁
 
Last edited:

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
第一件事首先:

C#:
string sql = "INSERT into tbl_Product (Prod_ID,Prod_Name,Sales_Price) VALUES ('"+ Product_ID + "', '"+ Product_Name + "', '"+ Product_Sales_Price + "')";
摆脱这些连接字符串并引入参数,否则您将自己留给SQL注入攻击。一旦你解决了这个问题,我们就可以看看你已经开始的其余部分。
 
最佳 底部