C#入门教程 文档笔记

问题描述:

第一次课(有课后哦) C#输出语句||类型的转换; E:\c#学习\作业\C#第一次课\258\作业 和笔记\上机作业

1. *.cs class 类文件 单独打开不可运行

*.csproj classproject 项目文件 打开只可以看到单个项目 *.sln 解决方案文件 打开就可以看到所有的项目 *.suo 项目资源文件 资源的路径保存在里面

2. 用于在程序中,保存数据的一个容器

java: int,char,String,boolean,double

C#: int,char,string,bool,double datetime

1. 组成:字母,下划线,数字

2. 开头:下划线或字母开头

3. 不能是关键字

3.Console 类:控制台类

作用:用于控制台数据的输入和输出

Console.Write("数据"); 向控制台输出数据 --不换行输出 Console.WriteLine("数据"); 向控制台输出数据 --换行输出 Console.WriteLine("格式化字符串", 数据)

//快捷键 cw+两下tab

Console.WriteLine();

3. 从控制台中获取数据

string 变量= Console.ReadLine();

数据类型转换 有效的整数格式字符串->整数 “123”Yes “123abc ”No

int 变量=int.Parse(字符串)

double d= double.Parse("有效的double 类型字符串");

第二次课(有课后哦) 数组||循环; E:\c#学习\作业\C#第二次课循环断点

switch 结构 java 和C#的差别

switch java C#

可有可无break break 必须有

数组的定义

数据类型[] 数组名称 = new 数据类型[长度]

例: 整型的保存10个数字的数组

int[] arr = new int[10]; //标准写法

int[] arr = new int[]{1,2,3,4,5,6,7?}; //快速初始化

int[] arr = {1,2,3,4,5,6,7?};//同上

循环

while 循环次数不确定的时候使用

for 循环次数确定的时候使用

所有数据类型基于 object

foreach : 避免使用数组的下标

循环遍历数组取值的时候使用

foreach(var item in 数组名)

{

// item是迭代变量 不能赋值

// var 推算类型 根据循环里面的数组的类型推算出来的。 }

1)foreach 循环

遍历,求和,遍历字符串

2)逆序输出数组(用for)

3)数组拼接(用for)

continue:结束本次循

break:跳出循环

嵌套循环

------------------------------

所有的数据类型都是基于 object 类型

随机数

Random r = new Random();

int result= r.Next(1,101);

第三次课 (有课后哦)转换类型||字符串;

E:\c#学习\作业\C#第三课string 常用方法

类型转换

1: 隐式转换 double a = 10; 小类型转大类型

2: 显示转换 强制转换 大类型转小类型

int a = int.Parse("字符串");

int b = (int)50.8;

将单字符强转成整形 得到的是这个字符的ASCII 编码

Parse() : 只能将字符串转变成对应的类型

ToString(): 将任意类型转变成字符串类型

强行转换 convert. 要转的数据类型(值);

Convert: 类型转换的一个类,通过它可以做任意基本类型的转换 举例: 输入年龄

int age = int.Parse(Console.ReadLine());

int age = Convert.ToInt32(Console.ReadLine());

字符串常用方法

1)字符串常用方法

Length :获取字符串长度,比如密码6位数

Equals :两个字符串是否相等, 也可以用 ==

Replace :Replace(旧值,新值)

ToUpper 和ToLower :大小写字母转换

Substring (开始下标) :从这个下标开始,一直到字符的末尾

Substring (开始下标, 长度) :从这个下标开始,截取指定长度的字符串

Trim():去掉两端空格

TrimStart()和TrimEnd():去掉字符串中出现的第一个和最后一个空格。不填参数 表示去空格 IndexOf :字符或者字符串的下标位置,找不到则返回-1

比如"tim_cheng@foxmail.com"中'@'和'.' 的下标位置,"cheng" 的下标 位置 LastIndexOf:

比如截取路径中的文件名,E:\课件\字符串常用方法.txt

字符串中有转义字符\,可以在字符串前加@或者在转义字符前加上\

Split():分割字符串,比如"192.168.0.1", 用'.' 分割得到字符数组

Join :将数组用某字符或字符串联接起来(与split 相反)

string.Join(分隔符,数组

StartsWith :以... 开头

EndsWith :以... 结尾

2)验证邮箱是否正确

(1)含有'@'和'.'(indexof)

(2)'@'在'.' 之前

(3)以"com" 结尾(EndsWith)

3)验证IP 是否合法

4)字符串分割求和,比如"10086_9527_666_999"

5)Format:格式化字符串, 比如返回SQL 插入语句

第四次课 窗口

E:\c#学习\作业\c#第四次课窗体课

一窗体:具有以下特征就是窗体

特征:

A :本地化

B :具有一定的操作性--最大化,最小化,关闭等

二窗体又叫UI (User Interface 用户界面)

三 学习窗体

A. 创建窗体 :新建项目 -> 选择 C# -> Windows窗体应用程序

B. 窗体的组成结构和细节

1. 窗体在VS 中有三个文件组成 : 一个类分成了二个部分类(partial 类)

【设计】:提供程序开发者一种可视化的操作

【代码】:后台逻辑代码(快捷键F7)

【系统自带】:系统自动生成的代码*.designer结尾

2为什么使用部分类(partial 类):

是微软为了让【系统生成】和我们【自己编写】的

代码区分开来,提高可阅读性而设计的

四窗体的特征(窗体由A 属性 B 事件组成)

A 属性:通过属性 改变窗体的外观

1》name:命名

2》text :标题值

3》BackColor:背景颜色

4》BackgroundImage:背景图片

t his.BackgroundImage = Image.FromFile("@...");----------@用于转译

this.BackgroundImageLayout = ImageLayout.Zoom;----------图片呈现方式 5》WindowState:打开窗体的状态 最大 最小 正常

6》MaximizeBox: 设置 最大化 7》MinimizeBox:设置最小化

8》opacity:透明度

9》StartPosition: 窗体运行的最初位置

10》ShowIntaskBar:是否在任务栏中显示

11》CancelButton :按Esc 键 相当于按了取消按钮

B 事件:用来控制识别操作

打开窗体--右击--属性---点击闪电---选中对应的事件

--如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件 1》窗体加载事件(该事件只执行一次)---

Load

响应者:窗体本身

发生:修改背景图片

2》鼠标点击/单击 click

事件源:鼠标点击

响应者:窗体

发生:窗体标题发生改变“萌萌哒”

3》鼠标移动-- MouseMove

事件源:鼠标移动

响应者:窗体

发生:窗体标题发生改变显示“鼠标坐标”

object sender 发出事件的对象

System.EventArgs e 对象中的数据

如果是按钮button 的话,那sender 就是那个button,

e 是事件参数,在某些事件里,比如在MouseEventArgs 的Mouse 事件中,可以看到e 包括mouse 的坐标值等,以供你的程序使用。

第五次课 窗口 消息框

E:\c#学习\作业\C#第五次课基本控件 C# Csharp 面向对象的高级语言

C#主要分三阶段

第一阶段 基础语法

第二阶段 基础控件

第三阶段 连接数据库---ado.net

应用程序 winform/ 控制台应用程序

|| ado.net

数据库(sql )

Lable 标签---文本提示

name lbl_意义

text 文本值

BackColor 背景颜色

Forecolor 字体颜色

Font 字体

TextBox 文本框----提供给用户输入文本

name txt_意义

text 文本

passwordchar 密码字符

MultiLine 多行

ScrollBars 滚动条

ComboBox 下拉框

name cmb_意义

items 集合

添加集合

cmb_意义.items.add("值");---逐个添加

下拉框控件名.items.AddRange(数组名)

事件 SelectedIndexChange---下拉框索引值改变时发生的事件 messageBox.Show(""):显示消息框

消息框的四种格式

1.messageBox.Show("消息内容")

2.messageBox.Show("消息内容"," 标题")

3.messageBox.Show("消息内容"," 标题", 按钮)

4.messageBox.Show("消息内容"," 标题", 按钮, 图标)

MessageBox.Show("消息", "标题", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); MessageBoxIcon.Warning 警告

MessageBoxIcon.Stop 停止

MessageBoxIcon.Erro 错误

MessageBoxIcon.Question 问题

MessageBoxIcon.None 无

第六课 基本控件

E:\c#学习\作业\C#第六次课基本控件单选多选分组框 一补充控件属性

textBox : ReadOnly 只读(默认false )

Combobox

DropDownStyle--DropDownList 只能从下拉框选(属性)

二 键盘按下的事件 (例题中的计算器)

// 只能输入阿拉伯数字 及. 和backspace

Keypress 事件

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {

// sender 事件源:textBox1

// e 数据 获取用户输入的字符 char c=e.KeyChar;

if (c >= '0' && c <= '9'||c==8||c=='.')

{

// 8 是backSpase 的ascaII 值

e.Handled = false;// 是否处理keypress 事件里的值 false 不处理 }

else

{

e.Handled = true;

}

}

三 单选框控件

RadioButton

name : rdb_意义

text :文本值

判断是否被选中

单选框控件名.Checked

判断单选框是否被选中

if( rdb_nan.Checked==true)

{

MessageBox.Show("性别为"+rdb_nan.text); }

事件 CheckedChanged

四 复选框

CheckBox

name :ckb_意义

text :文本值

复选框控件名.Checked

if(ckb_意义.Checked==true)

{

MessageBox.Show("爱好为"+ckb_意义.text);

}

五 分组框

GroupBox

name :grp_意义

text :文本值

PictureBox 图片----显示图片

name :pic_意义

pic_意义.Image=Image.FromFile("路径");

第七课 窗口的基本按钮(时间控件)

E:\c#学习\作业\C#07窗体基本控件3picture_timer 获取当前时间

DateTime.Now.toString();

pictureBox :图片控件

name :pic_意义

this. 图片名.Image=Image.FromFile("路径");

SizeMode :图片呈现方式

AutoSize :原图大小

CenterImage:居中

Zoom 等比例

StretchImage 拉伸

pictureBox1.SizeMode=PictureBoxSizeMode.Zoom

this. 图片名.Left

this. 图片名.top

Timer (这个事件在最下方)

Timer = 可控的死循环事件

方法 Start()/Stop()---手动启动、停止Tick 事件

属性

Interval 时间间隔 --默认100毫秒 1秒=1000毫秒 Enabled false/ture 是否一运行就启动事件

// 1循环获取复选框的值

foreach (Control item in groupBox1.Controls)

{

// 只获取checkBox 控件里的text 文本值 if (item is CheckBox)

{

CheckBox c =(CheckBox) item;

if (c.Checked)// 复选框被选中时 {

// 获取值 累加给 s

s+=c.Text;

}

}

}

MessageBox.Show("爱好是" + s);

第八课 图片的集合

E:\c#学习\作业\ListBox

ImageList 控件 :图片集合---只是用来放图片

不显示图片

显示ImageList 图片 :ImageList +pictureBox

images 集合(在最下面)

获取图片个数

ImageList1.images.Count;

获取ImageList1中某个图片

ImageList1.images[索引值];

给控件赋值

ImageList1.images.Add(单个值)

ImageList1.images.AddRange(多个值)

-------------------------------------

打开文件对话框

//1 类的实例化

OpenFileDialog ofd = new OpenFileDialog();

// 多选属性

ofd.Multiselect = true;

//2 打开对话框

DialogResult dr= ofd.ShowDialog();

//3 对结果的判断

if (dr==DialogResult.OK)

{

//4 把选中的文件名赋值给textBox1控件

textBox1.Text = ofd.FileName;// 单个文件 --带路径 //ofd.FileNames; 多个文件 --带路径

//ofd.SafeFileName; --只是文件名 }

第九次课

E:\c#学习\作业\C#11连接数据库1 窗体/控制台应用程序---UI 、业务逻辑

|| ado.net---连接数据库

SQL 结构化查询语言 --- 数据库

非查询语-----增删改

insert into 表名(列名1, 列名2, 列名n)

values(值1, 值2,值n)

delete from 表名 where 条件表达式

修改

update 表名 set 列名=新值, 列名=新值

where 条件表达式

查询

select * from 表名 where 条件表达式

C#中

insert into 表名(列名1, 列名2, 列名

n)

values()

(挖坑了记得填哦)

多表查询

内连接 select * from 表1

inner join 表2 on 表1. 公共字段=表2. 公共字段

左外连接 select * from 表1

left join 表2 on 表1. 公共字段=表2. 公共字段

※※※※※※※※

非查询语句 八大步骤 天龙八部

1 引用命令控件

Using System.Data.SqlClient;(在最上面敲)

2 创建连接字符串

String (变量名)strcon="server=.;database=数据库名;uid=sa;pwd=123"; 3 创建连接对象

SqlConnection (变量名)con=new SqlConnection (strcon); 4 打开连接对象

con.Open();

5 编写SQL 语句

string (变量名)sql=string.Format(@"增删改 的SQL 语句"); 6 创建命令对象

SqlCommand (变量名)com=new SqlCommand (sql,con);

7 执行命令

int n= com.ExecuteNonQuery();

8 关闭连接对象

con.Close();

注意 两处报错的地方

1 con.Open();报错 说明 连接字符串错了

2 com.ExecuteNonQuery(); 报错 说明SQL 语句错了 (名记)

第十次课

单值查询与单行查询

单值查询: 返回结果只有一行一列的情况

查询语句是进行统计时

Sum(),Count(),Avg(),Max(),Min()

单行查询: 返回的结果只有一行

查询语句根据条件最多只能查询出一条数据时 登录

根据主键查询数据

单值查询操作

1. 引用命名空间

using System.Data.SqlClient

//2. 连接字符串

string connStr = "server=.;uid=sa;pwd=123;database=lol"; //3. 创建连接对象

SqlConnection conn = new SqlConnection(connStr); //4. 打开连接

conn.Open();

//5. 要做的事情 -- 求总金额

string sql = "select sum(money) from hero";

//6. 创建执行命令对象

SqlCommand cmd = new SqlCommand(sql,conn); //7. 执行命令

decimal money = (decimal)cmd.ExecuteScalar(); //8. 关闭连接

conn.Close();

ExecuteScalar(): 不管查询的结果有多少, 返回第一行第一列的数据 返回类型是object, 取值时需要类型转换 T obj = (T)cmd.ExecuteScalar();

单行查询

也是天龙八步

7. 执行命名不一样

SqlDataReader dr = cmd.ExecuteReader();//执行命令,返回一个读取数据对象

SqlDataReader: 数据读取对象

1. 可以一次读取一条数据

2. 读取数据时,需要保证道路的畅通

3. 只能向下读取数据

dr.Read();//向下读取一条数据, 返回bool 类型的数据

true: 有数据

false: 没有数据

从结果集中读取列的数据

dr["列名"];//返回的是object 类型的数据

第十一课 ListView 控件_白道

E:\c#学习\作业\C#13ListView控件_白道

ListView 控件---白道

1. 拖入控件 ListView

2.

3. 设置列的属性---columns(添加列)--text(修改列名

)

4.

3. 设置View---details 4.

5. 网格线-- GridLine--true

6.

7.

5. 整行被选中属性--- FullRowSelect--true

6.

7.

6. 查询代码

// 创建连接字符串

string strcon = "server=.;database=c_258;uid=sa;pwd=123"; // 创建连接对象

SqlConnection con = new SqlConnection(strcon);

// 打开连接对象

con.Open();

// 编写SQL 语句

string sql = string.Format(@"select ID,name,tel,sex,born from dbo.father "); // 建立命令对象

SqlCommand com = new SqlCommand(sql ,con);

// 执行命令---dr 读卡器

SqlDataReader dr=com.ExecuteReader();

// 判读是否有行

if (dr.HasRows)

{

// 循环读取

while (dr.Read())

{

// 建立行的盒子-带上第一个列的值 3·ID , name,tel,sex,born ListViewItem lvi = new ListViewItem(dr["ID"].ToString().Trim()); // 把列的格子添加到行的 盒子里

lvi.SubItems.Add(dr["name"].ToString().Trim());// 第二列 lvi.SubItems.Add(dr["name"].ToString().Trim());// 第三列 lvi.SubItems.Add(dr["name"].ToString().Trim());// 第四列 lvi.SubItems.Add(dr["name"].ToString().Trim());// 第五列 // 把行的盒子 添加到 大盒子 (listview1 控件) listView1.Items.Add(lvi);

}

con.Close();// 读取数据完之后 关闭连接对象

}

----------------------------------

获取某行某列的值

// 获取第一行第二的值

string s=listView1.SelectedItems[0].SubItems[1].Text.ToString(); 判断是否有选择的行

if (listView1.SelectedItems.Count>0)// 是否有选中的行

{

// 获取选中的某行某列的值

strings=listView1.SelectedItems[0].SubItems[1].Text.ToString(); MessageBox.Show(s);

}

这个图的意思是点击listView 中的内容,然后删除

第十二课 ListView 删除和右击菜单 E:\c#学习\作业\ListView删除和右击菜单 ListView :白道

FullRowSelect :整行选中

Full:完整的

Row :行

Select :选择

AllowColumnReorder :允许对列排序

MultiSelect :允许多选

判断白道是否选中了一行

if(this.白道名.SelectedItems.Count == 0)

{

// 没有选中一行数据

//弹窗提示

}

获取白道选中行(单选) 第0列的值

this. 白道名.SelectedItems[0].SubItems[0].Text

模糊查询

like

_:匹配一个字符

%:匹配任意个字符

右键菜单 : ContextMenuStrip

特别注意:

右键菜单不能直接显示,必须绑定到某个控件

(也就是设置某个控件的ContextMenuStrip 属性)

十三次课 黑道

E:\c#学习\作业\C#15黑道DateGridView

DataGridView

// 整行选中

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 去掉末尾的行

dataGridView1.AllowUserToAddRows = false;

// 去掉列

dataGridView1.RowHeadersVisible = false;

(以上三行代码可以在属性里设置)

步骤

1. 拖入控件DataGridView

2. 设置列的个数-- 数据 列的绑定

3. 设置属性 三个属性

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 去掉末尾的行

dataGridView1.AllowUserToAddRows = false;

// 去掉列

dataGridView1.RowHeadersVisible = false;

4 写代码

// 2创建连接字符串

string strcon = "server=.;database=c_258;uid=sa;pwd=123";

// 3创建连接对象

SqlConnection con = new SqlConnection(strcon);

// 4打开连接对象

con.Open();

// 5编写SQL 语句

string sql = string.Format(@"select * from dbo.father");

// 黑道查询 ---把数据库中数据一次性查询出来

// 适配器 ---大卡车(去哪里运什么货--- )

SqlDataAdapter adp = new SqlDataAdapter(sql, con);

// 临时仓库 dataset 数据集

DataSet ds = new DataSet();

// 把数据填充 到临时仓库里

adp.Fill(ds);

// 绑定数据源

dataGridView1.DataSource = ds.Tables[0];

这个图片的意思是把黑道里的某行某列的值赋值给文本框

第十四课 无间道

组合框 (也叫下拉框)ConboBox ----无间道----多表数据中

DataSet 在using System.Data;命名空间下

※※※注意※※※

// 注意 手动添加了列时--- 列的索引值从0开始+1

获取第一行第一列的值dataGridView1.SelectedRows[0].Cells[1].Value.ToString();

//未手动添加列时 列的索引值从0开始

获取第一行第一列的值dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

给控件赋值

textBox1.Text=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

无间道代码

// 1引用命名空间

// 2创建连接 字符串

string strcon = "server=.;database=MyQQ;uid=sa;pwd=123";

// 3创建连接对象

SqlConnection con = new SqlConnection(strcon);

// 4 开来连接对象

con.Open();

// 5编写SQL 语句

string sql = string.Format(@"select Id, BloodType from dbo.BloodType "); select Id,Star from dbo.Star");

// 6建立大卡车

SqlDataAdapter adp = new SqlDataAdapter(sql,con);

// 7建立临时大仓库

DataSet ds = new DataSet();

adp.Fill(ds);// 填充

// 8绑定数据源

comboBox1.DataSource=ds.Tables[0];

// 9绑定显示值

comboBox1.DisplayMember = "BloodType";

// 10 绑定隐藏值

comboBox1.ValueMember = "Id";

// 11 关闭连接对象

con.Open();

-----------------------------

获取隐藏值

string 隐藏 = comboBox1.SelectedValue.ToString();

获取显示值

string 显示 = comboBox1.Text;

总结(八大步骤)

八大步骤:(链接数据库)

Using System.Data.SqlClient;(在最上面敲)

String (变量名)strcon="server=.;database=数据库名;uid=sa;pwd=123"; SqlConnection (变量名)con=new SqlConnection (strcon);

con.Open();

string (变量名)sql=string.Format(@"增删改 的SQL 语句");

SqlCommand (变量名)com=new SqlCommand (sql,con);

int n= com.ExecuteNonQuery();

con.Close();

(中文意思在图里)

白道(前六步和数据库添加一样)

Using System.Data.SqlClient;

string strcon = "server=.;database=c_258;uid=sa;pwd=123";

SqlConnection con = new SqlConnection(strcon);

con.Open();

string sql = string.Format(@"select ID,name,tel,sex,born from dbo.father ");

SqlCommand com = new SqlCommand(sql ,con);

// 执行命令---dr 读卡器

SqlDataReader dr=com.ExecuteReader();

// 判读是否有行

if (dr.HasRows)

{

// 循环读取

while (dr.Read())

{

// 建立行的盒子-带上第一个列的值 3·ID , name,tel,sex,born

ListViewItem lvi = new ListViewItem(dr["ID"].ToString().Trim());

// 把列的格子添加到行的 盒子里

lvi.SubItems.Add(dr["name"].ToString().Trim());// 第二列

lvi.SubItems.Add(dr["name"].ToString().Trim());// 第三列

lvi.SubItems.Add(dr["name"].ToString().Trim());// 第四列

lvi.SubItems.Add(dr["name"].ToString().Trim());// 第五列

// 把行的盒子 添加到 大盒子 (listview1 控件)

istView1.Items.Add(lvi);

}

con.Close();// 读取数据完之后 关闭连接对象

}

(中文意思在图里)

黑道 (前五步和数据库添加相同)(黑道是九步) Using System.Data.SqlClient;

string strcon = "server=.;database=c_258;uid=sa;pwd=123";

SqlConnection con = new SqlConnection(strcon);

con.Open();

string sql = string.Format(@"select * from dbo.father");

SqlDataAdapter adp = new SqlDataAdapter(sql, con);

DataSet ds = new DataSet();

adp.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

(中文意思在图里)

无间道 (前五步和数据库添加一样) (无间道至少11步) Using System.Data.SqlClient;

string strcon = "server=.;database=MyQQ;uid=sa;pwd=123";

SqlConnection con = new SqlConnection (strcon); con.Open();

string sql = string .Format(@"select Id, BloodType from dbo.BloodType"); SqlDataAdapter adp = new SqlDataAdapter(sql,con); DataSet ds = new DataSet();

adp.Fill(ds);

下拉框.DataSource = ds.Tables[0];

下拉框.DisplayMember = "BloodType";

下拉框.ValueMember = "Id";

(中文意思在图里)

1个回答 分类:综合 2018-01-23

问题解答:

我来补答
 
 
展开全文阅读
剩余:2000