c# winform常用记录
open a new page(打开新页面)
if you have a page called Page1.cs
Page1 page = new Page1();
page.ShowDialog();
comboBox 下拉框
add elements by order 顺序添加元素
this.comboBox.Items.Add("ele 1")
insert elements 插入元素
you can insert elements through index
this.comboBox.Items.Insert(0,"insert ele")
make default choose 默认选择
this.comboBox.SelectedIndex = 0;
DataGridVeiw
set background color 设置背景色
this.DataGridVeiw.RowsDefaultCellStyle.BackColor = Color.White;
set table row background color 设置表头背景色
this.DataGridVeiw.ColumnHeadersDefaultCellStyle.ForeColor = Color.Gray;
set rows background color change 更改行背景色
Color separation setting
这里设置隔行变色
//don't forget this
this.DataGridVeiw.EnableHeadersVisualStyles = false;
//change color
for (int i = 0; i < this.viewresultVeiw.RowCount; i++)
{
if (i % 2 == 0 || i == 0)
{
this.DataGridVeiw.AlternatingRowsDefaultCellStyle.BackColor = Color.Gray;
}
}
set row elements 设置行元素即添加元素在一行里
// first add a new row
this.viewresultVeiw.Rows.Add();
// choose add place
this.viewresultVeiw.Rows[0].Cells[0].Value = "ele 1";
EntityFramework
Select
easy select
ModelEntity model = new ModelEntity()
var sql = model.table.Select(x=>new {x.name,x.age}).ToList()
add where
var sql = model.table.Where(x=>x.id = 1).Select(x=>new {x.name,x.age}).ToList()
add OrderBy
var sql = model.table.Where(x=>x.id = 1).Select(x=>new {x.name,x.age}).OrderBy(x=>x.id).ToList()
Insert
order insert
Boolean judge = false;
string name = this.Module2Box.Text;
Position pos = new Position();
pos.PositionName = name;
Session2Entities session2Entities = new Session2Entities();
var sql = session2Entities.Position.Select(x => new { x.PId,x.PositionName }).ToList();
pos.PId = sql.Count()+1;
foreach (var i in sql) {
if (name == i.PositionName)
{
judge = false;
break;
}
else {
judge = true;
}
}
if (judge == true)
{
session2Entities.Position.Add(pos);
session2Entities.SaveChanges();
}
else {
Console.WriteLine("插入失败,已有键");
}
Delect
Session2Entities session2Entities= new Session2Entities();
Position position = new Position();
position.PId = int.Parse(this.Module3Box.Text);
session2Entities.Entry(position).State = System.Data.Entity.EntityState.Deleted;
session2Entities.SaveChanges();
Update
update all
Session2Entities session2Entities = new Session2Entities();
Position pos = new Position();
int id = int.Parse(this.Module1Box.Text);
pos.PId = id;
pos.PositionName = this.Module2Box.Text;
session2Entities.Position.Attach(pos);
session2Entities.Entry(pos).State = System.Data.Entity.EntityState.Modified;
session2Entities.SaveChanges();
update apart
session2Entities.Entry(pos).Property(x=>x.PositionName).IsModified = true;
analyze Json Data
needed repository
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
resultEntity
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace session2pro
{
public class ResultEntity
{
[DataMember(Order=0)]
public string Module1 { set; get; }
[DataMember(Order = 1)]
public string Module2 { set; get; }
[DataMember(Order = 2)]
public string Module3 { set; get; }
[DataMember(Order = 3)]
public string Module4 { set; get; }
}
}
code
Session2Entities session = new Session2Entities();
var sql = session.Skills_Result_Detail.Select(x => new { x.Result }).ToList();
var stream = new MemoryStream(Encoding.Default.GetBytes(sql[0].Result));
var serializer = new DataContractJsonSerializer(typeof(ResultEntity));
ResultEntity result = (ResultEntity)serializer.ReadObject(stream);
Object to Json
var resultEntity = new ResultEntity()
resultEntity.Model1 = "12"
var serializer = new DataContractJsonSerializer(typeof(ResultEntity));
var stream = new MemoryStream();
serializer.WriteObject(stream, resultEntity);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
string dataString = Encoding.UTF8.GetString(dataBytes);
Console.WriteLine(dataString);
analyze binary data to Images
Session2Entities session = new Session2Entities();
var sql = session.Competitor.Select(x=>new{x.Photo}).ToList();
byte[] vs = sql[0].Photo;
MemoryStream ms = new MemoryStream(vs);
Image image = Image.FromStream(ms);
newController.personPic.Image = image;
export CSV
attention:
if your DataGridView have null data in the end you should use
Substring(0, rowValue.Length);
if no null data you should use
Substring(0, rowValue.Length-1);
if you have null data in the row
you should change the row processing method and don’t use my processing way
this is mine
private void saveAsCSV(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.csv)|*.csv";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "保存csv";
string filePath = "D:\\csTest";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
Stream stream = null;
stream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(stream, Encoding.GetEncoding(-0));
string colName = "";
string rowValue = "";
try
{
for (int i = 0; i < this.viewresultVeiw.ColumnCount; i++)
{
colName += this.viewresultVeiw.Columns[i].HeaderText +",";
}
colName = colName.Substring(0, colName.Length - 1);
sw.WriteLine(colName);
for (int i = 0; i < this.viewresultVeiw.RowCount; i++)
{
rowValue = "";
for (int j = 0; j < this.viewresultVeiw.ColumnCount; j++)
{
if (this.viewresultVeiw.Rows[i].Cells[j].Value != null) {
rowValue += this.viewresultVeiw.Rows[i].Cells[j].Value + ",";
}
}
rowValue = rowValue.Substring(0, rowValue.Length);
sw.WriteLine(rowValue);
}
sw.Close();
stream.Close();
MessageBox.Show("导出成功");
}
catch (Exception err)
{
Console.WriteLine(err.Message);
MessageBox.Show("导出失败");
}
finally
{
sw.Close();
stream.Close();
}
}
}
export text
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "TXT (*.txt)|*.txt";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "保存txt";
string filePath = "D:\\csTest";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
Stream stream = null;
stream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(stream, Encoding.GetEncoding(-0));
string colName = "";
string rowValue = "";
for (int i = 0; i < this.viewresultVeiw.ColumnCount; i++) {
colName = this.viewresultVeiw.Columns[i].HeaderText+"\t";
sw.Write(colName);
}
sw.WriteLine();
for (int i = 0; i < this.viewresultVeiw.RowCount; i++) {
rowValue = "";
for (int j = 0; j < this.viewresultVeiw.ColumnCount; j++) {
rowValue = this.viewresultVeiw.Rows[i].Cells[j].Value + "\t";
sw.Write(rowValue);
}
sw.WriteLine();
}
sw.Close();
stream.Close();
}