Skip to content

Commit 5380eb1

Browse files
committed
update project
1 parent 9fb7d54 commit 5380eb1

40 files changed

+3714
-322
lines changed

.gitignore

Lines changed: 3 additions & 261 deletions
Original file line numberDiff line numberDiff line change
@@ -1,261 +1,3 @@
1-
## Ignore Visual Studio temporary files, build results, and
2-
## files generated by popular Visual Studio add-ons.
3-
4-
# User-specific files
5-
*.suo
6-
*.user
7-
*.userosscache
8-
*.sln.docstates
9-
10-
# User-specific files (MonoDevelop/Xamarin Studio)
11-
*.userprefs
12-
13-
# Build results
14-
[Dd]ebug/
15-
[Dd]ebugPublic/
16-
[Rr]elease/
17-
[Rr]eleases/
18-
x64/
19-
x86/
20-
bld/
21-
[Bb]in/
22-
[Oo]bj/
23-
[Ll]og/
24-
25-
# Visual Studio 2015 cache/options directory
26-
.vs/
27-
# Uncomment if you have tasks that create the project's static files in wwwroot
28-
#wwwroot/
29-
30-
# MSTest test Results
31-
[Tt]est[Rr]esult*/
32-
[Bb]uild[Ll]og.*
33-
34-
# NUNIT
35-
*.VisualState.xml
36-
TestResult.xml
37-
38-
# Build Results of an ATL Project
39-
[Dd]ebugPS/
40-
[Rr]eleasePS/
41-
dlldata.c
42-
43-
# DNX
44-
project.lock.json
45-
project.fragment.lock.json
46-
artifacts/
47-
48-
*_i.c
49-
*_p.c
50-
*_i.h
51-
*.ilk
52-
*.meta
53-
*.obj
54-
*.pch
55-
*.pdb
56-
*.pgc
57-
*.pgd
58-
*.rsp
59-
*.sbr
60-
*.tlb
61-
*.tli
62-
*.tlh
63-
*.tmp
64-
*.tmp_proj
65-
*.log
66-
*.vspscc
67-
*.vssscc
68-
.builds
69-
*.pidb
70-
*.svclog
71-
*.scc
72-
73-
# Chutzpah Test files
74-
_Chutzpah*
75-
76-
# Visual C++ cache files
77-
ipch/
78-
*.aps
79-
*.ncb
80-
*.opendb
81-
*.opensdf
82-
*.sdf
83-
*.cachefile
84-
*.VC.db
85-
*.VC.VC.opendb
86-
87-
# Visual Studio profiler
88-
*.psess
89-
*.vsp
90-
*.vspx
91-
*.sap
92-
93-
# TFS 2012 Local Workspace
94-
$tf/
95-
96-
# Guidance Automation Toolkit
97-
*.gpState
98-
99-
# ReSharper is a .NET coding add-in
100-
_ReSharper*/
101-
*.[Rr]e[Ss]harper
102-
*.DotSettings.user
103-
104-
# JustCode is a .NET coding add-in
105-
.JustCode
106-
107-
# TeamCity is a build add-in
108-
_TeamCity*
109-
110-
# DotCover is a Code Coverage Tool
111-
*.dotCover
112-
113-
# NCrunch
114-
_NCrunch_*
115-
.*crunch*.local.xml
116-
nCrunchTemp_*
117-
118-
# MightyMoose
119-
*.mm.*
120-
AutoTest.Net/
121-
122-
# Web workbench (sass)
123-
.sass-cache/
124-
125-
# Installshield output folder
126-
[Ee]xpress/
127-
128-
# DocProject is a documentation generator add-in
129-
DocProject/buildhelp/
130-
DocProject/Help/*.HxT
131-
DocProject/Help/*.HxC
132-
DocProject/Help/*.hhc
133-
DocProject/Help/*.hhk
134-
DocProject/Help/*.hhp
135-
DocProject/Help/Html2
136-
DocProject/Help/html
137-
138-
# Click-Once directory
139-
publish/
140-
141-
# Publish Web Output
142-
*.[Pp]ublish.xml
143-
*.azurePubxml
144-
# TODO: Comment the next line if you want to checkin your web deploy settings
145-
# but database connection strings (with potential passwords) will be unencrypted
146-
#*.pubxml
147-
*.publishproj
148-
149-
# Microsoft Azure Web App publish settings. Comment the next line if you want to
150-
# checkin your Azure Web App publish settings, but sensitive information contained
151-
# in these scripts will be unencrypted
152-
PublishScripts/
153-
154-
# NuGet Packages
155-
*.nupkg
156-
# The packages folder can be ignored because of Package Restore
157-
**/packages/*
158-
# except build/, which is used as an MSBuild target.
159-
!**/packages/build/
160-
# Uncomment if necessary however generally it will be regenerated when needed
161-
#!**/packages/repositories.config
162-
# NuGet v3's project.json files produces more ignoreable files
163-
*.nuget.props
164-
*.nuget.targets
165-
166-
# Microsoft Azure Build Output
167-
csx/
168-
*.build.csdef
169-
170-
# Microsoft Azure Emulator
171-
ecf/
172-
rcf/
173-
174-
# Windows Store app package directories and files
175-
AppPackages/
176-
BundleArtifacts/
177-
Package.StoreAssociation.xml
178-
_pkginfo.txt
179-
180-
# Visual Studio cache files
181-
# files ending in .cache can be ignored
182-
*.[Cc]ache
183-
# but keep track of directories ending in .cache
184-
!*.[Cc]ache/
185-
186-
# Others
187-
ClientBin/
188-
~$*
189-
*~
190-
*.dbmdl
191-
*.dbproj.schemaview
192-
*.jfm
193-
*.pfx
194-
*.publishsettings
195-
node_modules/
196-
orleans.codegen.cs
197-
198-
# Since there are multiple workflows, uncomment next line to ignore bower_components
199-
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
200-
#bower_components/
201-
202-
# RIA/Silverlight projects
203-
Generated_Code/
204-
205-
# Backup & report files from converting an old project file
206-
# to a newer Visual Studio version. Backup files are not needed,
207-
# because we have git ;-)
208-
_UpgradeReport_Files/
209-
Backup*/
210-
UpgradeLog*.XML
211-
UpgradeLog*.htm
212-
213-
# SQL Server files
214-
*.mdf
215-
*.ldf
216-
217-
# Business Intelligence projects
218-
*.rdl.data
219-
*.bim.layout
220-
*.bim_*.settings
221-
222-
# Microsoft Fakes
223-
FakesAssemblies/
224-
225-
# GhostDoc plugin setting file
226-
*.GhostDoc.xml
227-
228-
# Node.js Tools for Visual Studio
229-
.ntvs_analysis.dat
230-
231-
# Visual Studio 6 build log
232-
*.plg
233-
234-
# Visual Studio 6 workspace options file
235-
*.opt
236-
237-
# Visual Studio LightSwitch build output
238-
**/*.HTMLClient/GeneratedArtifacts
239-
**/*.DesktopClient/GeneratedArtifacts
240-
**/*.DesktopClient/ModelManifest.xml
241-
**/*.Server/GeneratedArtifacts
242-
**/*.Server/ModelManifest.xml
243-
_Pvt_Extensions
244-
245-
# Paket dependency manager
246-
.paket/paket.exe
247-
paket-files/
248-
249-
# FAKE - F# Make
250-
.fake/
251-
252-
# JetBrains Rider
253-
.idea/
254-
*.sln.iml
255-
256-
# CodeRush
257-
.cr/
258-
259-
# Python Tools for Visual Studio (PTVS)
260-
__pycache__/
261-
*.pyc
1+
packages
2+
CsharpLibs/bin
3+
CsharpLibs/obj

.vs/CsharpLibs/v16/.suo

86 KB
Binary file not shown.

CsharpLibs/App.config

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<configSections>
4+
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.18.3, Culture=neutral, PublicKeyToken=89b483f429c47342" />
5+
</configSections>
6+
<system.data>
7+
<DbProviderFactories>
8+
<remove invariant="Oracle.ManagedDataAccess.Client" />
9+
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.18.3, Culture=neutral, PublicKeyToken=89b483f429c47342" />
10+
</DbProviderFactories>
11+
</system.data>
12+
<runtime>
13+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
14+
<dependentAssembly>
15+
<publisherPolicy apply="no" />
16+
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
17+
<bindingRedirect oldVersion="4.122.0.0 - 4.65535.65535.65535" newVersion="4.122.18.3" />
18+
</dependentAssembly>
19+
</assemblyBinding>
20+
</runtime>
21+
<oracle.manageddataaccess.client>
22+
<version number="*">
23+
<dataSources>
24+
<dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
25+
</dataSources>
26+
</version>
27+
</oracle.manageddataaccess.client>
28+
</configuration>

CsharpLibs/BllClass.cs

Lines changed: 21 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -95,55 +95,32 @@ public T DataRowToModel<T>(DataRow row)
9595
{
9696
model = System.Activator.CreateInstance<T>();//引用类型 必须对泛型实例化
9797
#region MyRegion
98-
//获取model中的属性
99-
PropertyInfo[] modelPropertyInfos = type.GetProperties();
98+
10099
//遍历model每一个属性并赋值DataRow对应的列
101-
foreach (PropertyInfo pi in modelPropertyInfos)
100+
foreach (var pi in typeof(T).GetProperties())
101+
{
102+
if (row.Table.Columns.Contains(pi.Name) && row[pi.Name] != null)
103+
{
104+
try
105+
{
106+
pi.SetValue(model, Convert.ChangeType(row[pi.Name], pi.PropertyType),null);
107+
}
108+
catch (System.InvalidCastException)
109+
{ }
110+
}
111+
}
112+
113+
//遍历model每一个并赋值DataRow对应的列
114+
foreach (var field in typeof(T).GetFields())
102115
{
103-
//获取属性名称
104-
String name = pi.Name;
105-
if (row.Table.Columns.Contains(name) && row[name] != null)
116+
if (row.Table.Columns.Contains(field.Name) && row[field.Name] != null)
106117
{
107-
ModelType piType = GetModelType(pi.PropertyType);
108-
switch (piType)
118+
try
109119
{
110-
case ModelType.Struct:
111-
{
112-
var value = Convert.ChangeType(row[name], pi.PropertyType);
113-
pi.SetValue(model, value, null);
114-
}
115-
break;
116-
case ModelType.Enum:
117-
{
118-
Type fiType = row[0].GetType();
119-
if (fiType == typeof(int))
120-
{
121-
pi.SetValue(model, row[name], null);
122-
}
123-
else if (fiType == typeof(string))
124-
{
125-
var value = (T)Enum.Parse(typeof(T), row[name].ToString());
126-
if (value != null)
127-
pi.SetValue(model, value, null);
128-
}
129-
}
130-
break;
131-
case ModelType.String:
132-
{
133-
var value = Convert.ChangeType(row[name], pi.PropertyType);
134-
pi.SetValue(model, value, null);
135-
}
136-
break;
137-
case ModelType.Object:
138-
{
139-
pi.SetValue(model, row[name], null);
140-
}
141-
break;
142-
case ModelType.Else:
143-
throw new Exception("不支持该类型转换");
144-
default:
145-
throw new Exception("未知类型");
120+
field.SetValue(model, Convert.ChangeType(row[field.Name], field.FieldType));
146121
}
122+
catch (System.InvalidCastException)
123+
{ }
147124
}
148125
}
149126
#endregion

0 commit comments

Comments
 (0)