12.26-1.2 c#大作业 点餐系统(老板和用户两个系统)

完整运行截面图和介绍:

12.26-1.2 C#大作业:点餐及账单管理系统(包括用户和员工两个分支) - 阿萍萍萍 - 博客园 (cnblogs.com)

 

上来SQL下载就搞得晕头转向,之前下过卸载了没有删干净,用的navicat。

1. 先试了试能不能连接数据库

重点在两个地方:第一个是连接数据库的文本连接,advice 是数据库的名字

第二个地方刚开始没加,弄了一天都不懂为什么连接上数据库了却添加不上数据

前面的操作只是连接了数据库并定义了操作,却没有执行,通过ExecuteNonQuery执行

(若有查询结果的select语句的话还需要用dataAdapter 和dataset来接受结果,补一下c#的数据库语言)

 

c问题13:SQL未在命名空间内的解决办法

C# 控制台 使用SqlConnection类的时候一直报错 - 灰信网(软件开发博客聚合) (freesion.com)

 

问题2:向窗体中添加图片

加个picturebox控件,通过sizemode来调整其内部图片的大小,设置为strechlmage即可自动调整为合适的大小

 

问题3:窗体间传参  学习视频 C#小课堂之窗体间的参数传递方法_哔哩哔哩_bilibili

法一:构造函数,重写子窗体的构造函数

法二:通过公共的静态变量传值(一定要静态静态静态!静态可以通过类名访问)

只试了这两个,相较于一,二感觉更方便点,所有窗体都可以用啦!

另外在这儿耽误了一天,不管怎么设置label都不变,后来发现是因为有一个button1_Click和button1_Click_1,因为之前的事件关联代码删掉了,我一直在第一个里面做输入已经无效了,被第二个覆盖掉,所以要直接改第二个里面的代码才!有!效!!

 

问题4:引入时间/ 数据库语句的引号使用

c#中的时间表示   c#获取当前日期时间(转) - 小风吹吹 - 博客园 (cnblogs.com)

出现了一个问题,引入时间的时候添加到数据库内容报错   System.Data.SqlClient.SqlException:“从字符串转换日期和/或时间时,转换失败。”

或者是

 

问题解决了,是我数据库插入语句的语法有问题, 具体看问题5

 

问题5:数据库添加

正确的添加语句把这条分为两个大部分,一个是前面的语句,含操作,第二个是内容

 

问题6:datagridview 显示数据库的列表内容,可以手动调表格宽度,如何锁死不让用户调整

解决方案:不要在vs中调节,要从数据库的显示中调整列的宽度

 

问题7:如何实现点一条数据库的内容在旁边显示出相应的信息

点击datagridview控件的CellContentClick事件,对对应的文本框进行赋值,例如

            textBox1.Text = this.dataGridView1[0, this.dataGridView1.CurrentCell.RowIndex].Value.ToString();

在这里有一个问题,因为在一个窗体内我用了问题8的groupbox做了窗口切换,所以这里有遗留问题,无法进行另一个窗体内的内容显示(因为事件触发不对)

我的解决方法是加了一个查询的按钮,点击即刷新

 

 

 

问题8:实现窗体的界面切换,使用空间groupbox

注:form为顶级空间,不能直接controls.add,需要先进行form.toplever = false;

 

问题9:System.InvalidOperationException:“ADP_ConnectionRequired_Fill”

注意,建立命令对象的时候如果使用SQLcommand a = new Sqlcommand("……",mycon)

最后一定要有对数据库对象的联立,否则连接失败

同样的报错:System.InvalidOperationException:“ExecuteNonQuery: Connection property has not been initialized.”  都是因为没连接成功,检查连接数据库语句的地方。

 

问题10:SQL的相关语句

查询 :常用SQL查询语句 - myLittleGarden - 博客园 (cnblogs.com)  注意查找所有列的时候用*,某一列直接就说明列名就行

插入:SQL INSERT INTO 语句 (w3school.com.cn)

 

问题11:制作抽奖的转盘:不知道吃什么菜了就随机抽一个菜

参考:C#可视化02:九宫格抽奖_哔哩哔哩_bilibili

 

问题12:如何对数据库查询返回值进行规定,比如返回第几个值

executescalar为第一行第一列的值(即为第一个值),若要指定,可以通过添加datareader完成,如下图

 

[]内容为指定列名

 

posted @ 2022-01-07 21:30  阿萍萍萍  阅读(493)  评论(0编辑  收藏  举报