




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 Params是什么含义?2 C#中有没有运算符重载?能否使用指针?3 C#中有很多类被定义为public有什么意义?4 Internal修饰符有什么含义?5 JAVA的代码是半编译半解释的C#的代码是否也是这样6 私有程序集与共享程序集有什么区别?7 请解释进程与线程的区别?进程与程序的区别?8 CLR与IL分别是什么含义?9 对象能否调用静态方法10 .请解释ASP。NET中以什么方式进行数据验证1 WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。2 WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?3 请解释web.config文件中的重要节点4 请解释ASP。NET中的web页面与其隐藏类之间的关系?5 什么是viewstate,能否禁用?是否所用控件都可以禁用?6 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决7 请解释什么是上下文对象,在什么情况下要使用上下文对象8 请解释转发与跳转的区别?9 请解释一下。NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。10 请解释这个正则表达式“ABTJG1-3QSWd4”l 以A或B开头的+TIJ中的一个+1,2,3中的一个+ QSW中的一个 + 四位数字11 请以图示方式解释ADO。NET的对象模型。12 请解释webService? 如何实现webService。 l webService可以描述为可以在 Web 上部署并可以被任何应用程序或其他服务调用的功能它可以是商业应用功能,也可以是系统功能,webService使用了SOAP这个所有主要供应商都支持的新标准协议,SOAP 使用 HTTP 在网络上进行通信或传递信息,使用 XML 定义数据能力在.net中webService实现步骤:l 创建一个webService,生成相应的.asmx文件。l 添加一个通过 Internet 公开和调用的方法。此类方法又称为 WebMethodl 部署创建好的webServicel 在将要调用webService的项目中添加web引用,生成相应的代理类。l 实例化代理类对象l 通过代理类对象调用相应的WebMethod13 如果出现ASP。NET中的事件不能触发可能由于什么原因造成?请列举至少两个l 如果在web窗体中使用了验证控件,那么当验证控件中的验证逻辑没有通过时一般会使事件不能触发执行。l 如果使用了诸如Textchange、Checkchange、Selectedindexchanged这类事件并在 服务器端进行了事件处理,但是没有设置AutoPostBack属性时会使事件不能触发执行。14 如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决?l 可以使用datagride的模版列,给datagride的模版列中添加一个下拉列表框控件,并创建列表框中要显示的数据源对象最常用的是datatable对象然后使用数据绑定技术为下拉列表框绑定数据。15. 对webService进行优劣评价。l webService可以描述为可以在 Web 上部署并可以被任何应用程序或其他服务调用的功能它可以是商业应用功能,也可以是系统功能,使用webService最大好处是Web 服务缩小了 Web 应用程序之间的“通信隔阂”,增强了交互性,使不同的web应用程序可已经进行相互调用,webService的互操作性是由于webService使用了SOAP这个所有主要供应商都支持的新标准协议,因而避免了在CORBA、DCOM 和其他协议之间转换的麻烦。还因为可以使用任何语言来编写 Web Service,因此开发者无需更改其开发环境,就可编写和使用 Web Service,Web Service使用 HTTP 和 XML 进行通信。因此,任何支持这些技术的设备都可以拥有和访问 Web Service。你可以通过Internet Explore浏览器来访问它,你甚至也可以通过智能手机来访问它,Web 服务的另一个重要特征是支持松散耦合。一个应用程序可以分解为多个逻辑服务组件,其中的每个服务组件都可以使用结构框架构建,也可以在物理上分布于多个计算机之间。松散耦合的另一个重要方面是 Web 服务只在需要时实时集成。16. string 和 stringBuider 有什么区别.为什么在.NET中 要同时存在.l String 是表示字符串的字符对象的连续集合。String 的值是恒定的。由于 String 的值一旦创建就不能再修改,所以称它是恒定的。表面上看 String 得知可以修改,实际上只是返回一个包含修改内容的新 String。l StringBuilder类表示可变字符的字符串,通过StringBuilder你可以方便的对字符串进行追加,插入,替换等操作。总之这两个类的用途不同,当你想要存储一个相对固定的字符串时就使用string,而你要动态根据程序生成一个字符串时或频繁的更改字符串里的内容时使用StringBuilder17. 请解释接口,反射,委托.并按性能进行排序。l 接口l 反射l 委托一、 C#10 请解释在new 与override的区别?l 在 C# 中,new 关键字可用作运算符或修饰符。 new 运算符用于在堆上创建对象和调用构造函数。 new 修饰符用于隐藏基类成员的继承成员。l 使用 override 修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法。重写基方法必须与重写方法具有相同的签名。不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。重写声明不能更改虚方法的可访问性。重写方法和虚方法必须具有相同的访问级修饰符。不能使用下列修饰符修改重写方:newstaticvirtualabstract重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且重写属性必须是虚拟的、抽象的或重写的。11 请解释virtual的含义?l virtual 关键字用于修改方法或属性的声明,在这种情况下,方法或属性被称作虚拟成员。虚拟成员的实现可由派生类中的重写成员更改。调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。默认情况下,方法是非虚拟的。不能重写非虚方法。不能将 virtual 修饰符与以下修饰符一起使用:staticabstractoverride除了声明和调用语法不同外,虚拟属性的行为与抽象方法一样。在静态属性上使用 virtual 修饰符是错误的。 通过包括使用 override 修饰符的属性声明,可在派生类中重写虚拟继承属性12 请解释.net采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释。13 请解释接口的显式实现有什么意义?l 接口是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没有实际的表示形式,其他类型必须转换为接口类型。一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为成员。14 请以图示方式解释.net framework?VBC+C#JScriptCommon Language SpecificationXML WebservicesWeb FormsWindows FormsData and XMLBase Class LibraryCLRCLIVisual Studio .NET15 什么是.net?l .net是一种平台和框架, .net 不是单纯的语言也不是单纯的工具,它是从底层平台开始构建起来的一个整体框架16 Ref 与out有什么不同?l 方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法。ref 参数的值被传递到 ref 参数。传递到 ref 参数的参数必须最先初始化。将此方法与 out参数相比,后者的参数在传递到 out 参数之前不必显式初始化。属性不是变量,不能作为 ref 参数传递。如果两种方法的声明仅在它们对 ref 的使用方面不同,则将出现重载。但是,无法定义仅在 ref 和 out 方面不同的重载。l 方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。l 当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。属性不是变量,不能作为 out 参数传递。如果两个方法的声明仅在 out 的使用方面不同,则会发生重载。不过,无法定义仅在 ref 和 out 方面不同的重载。17 值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型。l 大多数编程语言提供内置的数据类型(比如整数和浮点数),这些数据类型会在作为参数传递时被复制(即,它们通过值来传递)。在 .NET Framework 中,这些称为值类型。您可以创建值类型的实例,将它们作为参数传递,将它们存储为局部变量,或将它们存储在另一值类型或对象的字段中。值类型没有与存储类的实例相关的系统开销,并且它们不需要构造函数。值类型可以有字段、属性和事件。它们也有静态和非静态方法。当它们被装箱时,会从 System.ValueType 继承虚方法,并可实现零个或更多接口。值类型是密封的,这意味着不能从它们派生出其他类型。但是,可以直接对值类型定义虚方法,并且既可对该类型的已装箱形式,也可对未装箱形式调用这些方法。尽管不能从一种值类型派生出另一种类型,但是当所用语言处理虚方法比处理非虚方法或静态方法更方便时,可以对值类型定义虚方法。l 引用类型的变量又称为对象,可存储对实际数据的引用。以下用于声明引用类型的关键字: class interface delegate 18 结构体是值类型还是引用类型的?l 是值类型。19 C#中有没有静态构造函数,如果有是做什么用的?l 有. 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。20 在C#中如何实现多态?l “多态性”指定义具有功能不同但名称相同的方法或属性的多个类的能力,这些类可由客户端代码在运行时交换使用。大部分面向对象的编程系统都通过继承提供多态性。基于继承的多态性涉及在基类中定义方法并在派生类中使用新实现重写它们。21 什么是反射?如何实现反射?l 反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。通过反射命名空间中的类以及 System.Type,您可以获取有关已加载的程序集和在其中定义的类型(如类、接口和值类型)的信息。您也可以使用反射在运行时创建类型实例,然后调用和访问这些实例。22 请解释流与文件有什么不同?l 文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此,对于文件,人们常会想到目录路径、磁盘存储、文件和目录名等方面。相反,流提供一种向后备存储器写入字节和从后备存储器读取字节的方式,后备存储器可以为多种存储媒介之一。正如除磁盘外存在多种后备存储器一样,除文件流之外也存在多种流。例如,还存在网络流、内存流和磁带流等。23 程序集与命名空间有什么不同?l 命名空间是用于避免命名冲突,专用于组织代码,当代码要在其他某个应用程序中重用时,可以降低复杂性。程序集是重用代码的一种方式l 不同: 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中命名空间程序集有逻辑编译时机制有物理编译时机制不是运行时实体是运行时实体为源代码元素的名称提供逻辑结构为可执行文件的运行时提供物理结构24 请编写一个捕获所有错误的错误处理代码Try catch(Exception e)25 委托与事件是什么关系?为什么要使用委托委托提供了封装方法的方式,事件是某动作已发生的说明,事件是建立于委托之上的程序运行时同一个委托能够用来调用不同的方法只要改变它的引用方法即可同一个委托能够用来调用不同的方法,只要改变它引用的方法即可,因此委托调节器用的方法不是在编译时决定的,而是在运行时确定的.26 一个类中有几种元素?l 类由字段,属性,方法组成27 请解释这种语法现象Session“name”=20;l 给类的索引器赋值.28 装箱与取消装箱是什么含义?l 装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。l 取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。取消装箱操作包括: 检查对象实例,确保它是给定值类型的一个装箱值。 将该值从实例复制到值类型变量中。 29 一个构造函数能否调用另一个构造函数,如果能请写出简单的代码class class1 int y;public class1()new class1(5);public class1(int i) this.y=i;public void x() Console.WriteLine(y.ToString();static void Main(string args)/class1 cl=new class1(5);cl.x();30 请编写创建一个线程的代码。using System;using System.IO;using System.Threading ;class MyThreadpublic int count;string thrdName;public MyThread(string name)count=0;thrdName=name;public void run()Console.WriteLine(thrdName+starting.);doThread.Sleep(500);Console.WriteLine(In+thrdName+, count is +count);count+;while(count10);Console.WriteLine(thrdName+ terminating.);class MultiThreadpublic static void Main()Console.WriteLine(Main thread starting.);MyThread mt=new MyThread(Child #1);Thread newThrd=new Thread(new ThreadStart(mt.run);newThrd.Start();do Console.Write(.);Thread.Sleep(100);while(mt.count!=10);Console.WriteLine(Main thread ending.);31 Params是什么含义?l params 关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。32 C#中有没有运算符重载?能否使用指针?u 重载操作符意味着使该操作符具有不同的行为u 使用操作符可以使方程式简单易懂u 重载运算符使用operator关键字来创建一个运算符方法u 能使用指针, 在 C# 中很少需要使用指针,但仍有一些需要使用的情况。例如,在下列情况中使用允许采用指针的不安全上下文是正确的: n 处理磁盘上的现有结构 n 涉及内部包含指针的结构的高级 COM 或平台调用方案 n 性能关键代码 不鼓励在其他情况下使用不安全上下文。具体地说,不应该使用不安全上下文尝试在 C# 中编写 C 代码。33 C#中有很多类被定义为public有什么意义?u Public 关键字将公共访问权限授予一个或多个被声明的编程元素。对公共元素的可访问性没有限制。34 Internal修饰符有什么含义?u internal 关键字是类型和类型成员的访问修饰符。内部成员只有在同一程序集中的文件内才是可访问的。内部访问通常用于基于组件的开发,因为它使一组组件能够以私有方式进行合作,而不必向应用程序代码的其余部分公开。例如,用于生成图形用户界面的框架可以提供“控件”类和“窗体”类,这些类通过使用具有内部访问能力的成员进行合作。由于这些成员是内部的,它们不向正在使用框架的代码公开。在定义具有内部访问能力的成员的程序集外部引用该成员是错误的。35 JAVA的代码是半编译半解释的C#的代码是否也是这样u C#源码经过语言编译器执行第一次编译,变为中间语言,然后再由CLR编译成可执行代码.36 私有程序集与共享程序集有什么区别?l 私有程序集: 默认情况下,C# 程序编译为私有程序集需要放在应用程序所在的文件夹中程序集的名称在应用程序中应当是唯一的l 共享程序集:可以被不同的应用程序共享在所有使用程序集的应用程序中,程序集名称应当是唯一的放在全局程序集缓存中37 请解释进程与线程的区别?进程与程序的区别?l 用最简短的话来说,进程就是当前运行的应用程序。线程是操作系统向其分配处理器时间的基本单位。线程可执行进程的任何一部分代码,包括当前由另一线程执行的部分。38 CLR与IL分别是什么含义?l CLR(公共语言运行库):能管理内存,能够轻松地设计其对象可以跨语言互动的组件和应用程序,编译一次,并可以在任何支持运行库的CPU和操作系统上运行,跨语言集成(特别是跨语言继承)l IL(中间语言):可用于语言互操作性,IL不是字节代码,但很接近字节代码,因此执行应用程序时,IL到机器代码的转换要快很多。独立于CPU的指令集。由CLR转换为特定于CPU的代码。39 对象能否调用静态方法l 对象能调用静态方法。40 请说明如下代码的结果class Fathervoid show()Console.Write(Father);static void Main(string args)Father obj=new Child();obj.show();class Child:Fathervoid show()Console.Write(Child);l 执行结果为:Father.二、 ASP.NET15 ASP.NET中的身份验证有那些?请解释。l Windows验证:指定Windows身份验证作为默认的身份验证模式.如果是任何形式的Internet信息服务(IIS)身份验证,则使用此模式.l Forms验证:指定基于ASP。NET窗体的身份验证作为默认的身份验证模式。l Passport:指定Microsoft Passport身份验证作为默认的身份验证模式。l None:不指定身份验证,仅适用于匿名用户,或者应用程序可以处理事件以提供它们自己的身份验证情况。16 什么是WEB控件?使用WEB控件有那些优势?WEB控件是能拖放在WEB页面上的控件WEB控件分为:内部控件, 列表控件, 复杂控件, 验证控件WEB控件优势:Web 控件是对象与对象一样,Web 控件拥有方法和属性,并且响应事件一旦将 Web 控件包括在 Web 页中,就可以设置其属性并调用其方法可以为 Web 控件编写服务器端代码以响应在客户端上发生的事件17 请解释ASP。NET中以什么方式进行数据验证?l 是以验证控件进行数据验证的。18 请谈谈对正则表达式的看法?l 能将一些比较复杂的验证逻辑以简单的验证表达式验证.19 ASP。NET中共有几种类型的控件?各有什么区别?l WEB控件分为:内部控件, 列表控件, 复杂控件, 验证控件l 内部控件-内部控件的使用方法与 HTML 控件相同,它们映射到 HTML 元素并通过使用 runat = server 属性在服务器上执行 l 列表控件-用于在 Web 页中创建数据列表l 复杂控件- 当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户界面时,可以使用复杂控件l 验证控件-输入控件的数据需要进行准确性和取值范围方面的检查20 WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。由于ASP。NET是Web页面和服务端分离的,因此要产生了服务端事件. 使用_doPostBack函数能够自动地把客户端的javascript事件转变为一个服务器端的事件A框架自动为我们处理有关的细节简化工作 使用自动传回的特性:在检测到一个特定用户动作时,自动传回能够将这个页面传回服务器以处理事件.21 WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?可以,其调用过程大致如下:用户使用WEB控件或者html服务端控件,控件的调用方法事件被激发,于是服务器开始自动寻找所匹配的方法代码,当在客户端找到后解释执行客户端的方法代码,完毕后继续返回服务器执行剩余代码.22 ASP。NET与ASP相比有什么优势?ASP的缺点:1、 VBScript和JavaScript是在ASP中仅可使用的两种脚本语言。它们是基本的非类型化语言。在ASP中不能使用强类型语言.2、 ASP页面需要解释,使得它执行速度较慢。3、 ASP页面非常凌乱。4、 在使用ASP创建WEB应用程序时,程序员和设计人员必须在同一文件上一起工作。5、 在ASP中,必须通过编写代码来提供所需的任何功能。6、 在ASP中没有对代码给予太多的关注。7、 在ASP中没有调试机制。8、 在ASP中。必须停止WEB服务器才能安装DLL的新版本,并且在应用程序中使用DLL的新版本之前,必须先在注册表中注册它,而且,DLL注册过程非常复杂。ASP.NET的优点:1. ASP。NET中支持强类型语言.2. ASP。NET页将被编译而不是解释,这样它们的执行速度就比ASP页快。3. ASP。NET提供声明性服务器控件。4. ASP。NET通过继承机制来支持代码的重用。5. ASP。NET具有Trace的内置方法,可以帮助对页面进行调试。在ASP。NET中,置于应用程序的BIN目录中的任何组件将自动对应用程序可用.23 请解释web.config文件中的重要节点l 动态调试编译-,自定义错误信息-,身份验证,授权-,应用程序级别跟踪记录-,会话状态设置-,全球化-24 请解释ASP。NET中的web页面与其隐藏类之间的关系?l Web页面主要封装前台的页面显示,而其隐藏类则主要用来实现后台的业务逻辑操作,而且其隐藏类是继承于web页面的.25 什么是viewstate,能否禁用?是否所用控件都可以禁用?l ViewState 用于维护页面的 UI 状态.可以禁用.26 请解释该错误l 在本机上的应用程序配置错误,可能是配置文件不全或者映射错误造成的.27 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决28 请解释一个WEB页面中代码执行次序。l 1创建页面和控件:2.从查看状态中恢复页面和控件的状态 (只限于回传):3.根据用户输入更新页面控件 (只限于回传):4.页面验证 (只限于回传):5.引发事件:6.页面和控件的状态保存到查看状态中:7.页面和控件转换到 HTML:8.释放页面和控件:29 请解释什么是上下文对象,在什么情况下要使用上下文对象l 上下文对象(context),指的是与项目相关连的各种项目信息,它是针对你所处的当前文件提出的,可以看作是项目各种信息的总和,可以设置和获取,当你想得到一些需要的项目信息或者设置一些参数以便以后项目中使用时,可以用上下文对象.30 请解释转发与跳转的区别?l 所谓转发,就是当执行页面转换时,当请求显示另一个页面时,当前页面会把客户 端的请求先提交到服务器端,再由服务器端定向到用户请求的页面再进行显示,而页面的跳转则是当客户端请求另一页面时,由当前页面直接定向到另一页面的过程,它不通过服务器的操作.所以页面转发安全性更强而页面跳转则响应时间短,速度更快.31 请解释ASP.NET中不同页面之间数据传递有那些方式?l 使用QueryString,如.?id=1; response. Redirect(). 2.使用Session变量 3.使用Server.Transfer()方法32 请解释ASP。NET中button linkbutton imagebutton 及hyperlink这四个控件之间的区别l button 是普通按钮控件,具有按钮所有的属性和事件方法, linkbutton LinkBu组件也是一个服务器端的组件,这个组件有点类似于HTML中的A标识符。它的主要作用是就是在ASP.NET页面中显示一个超链接。当这个链接被按动的时候,页面就会往服务器端传递信息,并且在服务器端来处理相应的事件, imagebutton 是图片按钮,它以一张图片来代替按钮,来执行按钮的功能,显示为图片,具有按钮的所有功能, hyperlink 为超级链接控件, 以用鼠标选中的文字或图形。不论在任何地方,点击一个超级链接可以使用户转移到同一页面的不同部分或另一个页面.不具有按钮的功能.33 请解释一下。NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。l 按照传递方式可以分为两种 :1.从上而下. 2.从下而上. 一般采取从下而上的传递方式进行数据传递.34 如果出现ASP。NET中的事件不能触发可能由于什么原因造成?请列举至少两个1. 事件处理程序没有注册到数据源 2. 回发错误.35 如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决?36 请解释中的数据绑定与传统数据绑定有什么区别?37 请以图示方式解释ADO。NET的对象模型。 .net数据提供程序 DATASETCONNECTIONCOMMANDDATAADAPTERDATAREADERDATATABLEDATAROWDATACOLUMNUNIQUECONSTRAINTFOREIGNKEYCONSTRAINT 数据库38 请解释webService? 如何实现webService。39 如果用dataSet提交数据请编写实现代码?把DataSet的更改提交到数据库,以下为INSERT,UPDATE,DELETE的实现源码: 1/*/*2*Createdby:StevenHe2006/02/163*Descritpion:SqlServer数据访问工具类。4*/5usingSystem;6usingSystem.Data;7usingSystem.Data.Common;8usingSystem.Data.SqlClient;9usingSystem.Text;1011namespaceNewegg.Data1213/*/14/SummarydescriptionforSqlDbAccess.15/16publicclassSqlDbAccess1718staticSqlDbAccess()19202122/*/23/处理传入的数据库表名,加上,避免因表名是数据库中的关键字而出错。24/并且在不存在所有者名的时候,加上所有者名。25/26/待处理的数据库表名。27/处理后的数据库表名。28privatestaticstringPrepareDbTableName(stringdbTableName)2930stringtableName=dbTableName.Split(.);31if(tableName.Length=1)/只有表名3233if(tableName00=)34returntableName0;/tableName格式35else36returnstring.Concat(dbo.,dbTableName,);/tableName格式3738else3940StringBuildertext=newStringBuilder(100);41for(inti=0;itableName.Length;i+)4243if(tableNamei0=)/xx格式44text.Append(tableNamei0+.);45else/xx格式46text.Append(+tableNamei+.);4748text.Remove(text.Length-1,1);4950returntext.ToString();51525354/*/55/更新DataTable的更改到数据库中。56/并发控制采用“最后的更新生效”57/58/有效的要提交的DataTable对象59/有效的数据为连接对象60/有效的数据库表名61/有效的要提交的列及参数映射对象数组62/有效的条件列及参数映射对象数组63/是否需要事务64publicstaticvoidUpdateData(DataTabletable,SqlConnectionsqlConn,stringdbTableName,65ParameterColumnMappingdataColumnMappings,ParameterColumnMappingkeyColumnMappings,boolneedTransaction)6667if(table=null)thrownewArgumentNullException(table);68if(sqlConn=null)thrownewArgumentNullException(sqlConn);69if(dbTableName=null|dbTableName.Length=0)thrownewArgumentNullException(dbTableName);70if(dataColumnMappings=null|dataColumnMappings.Length=0)thrownewArgumentNullException(dataColumnMappings);71if(keyColumnMappings=null|keyColumnMappings.Length=0)thrownewArgumentNullException(keyColumnMappings);72if(table.Rows.Count=0)return;7374dbTableName=PrepareDbTableName(dbTableName);7576/设置连接是否需要在完成后关闭的标记。77/如果连接对象传进来时是关闭的,则用完后也应该关闭。即保持连接传入前的状态。78boolconnNeedClose=(sqlConn.State=ConnectionState.Closed);7980SqlDataAdaptersqlAdapter=newSqlDataAdapter();8182/添加表映射及列映射83DataTableMappingtableMapping=sqlAdapter.TableMappings.Add(dbTableName,table.TableName);84for(inti=0;idataColumnMappings.Length;i+)8586tableMapping.ColumnMappings.Add(dataColumnMappingsi.SourceColumn,dataColumnMappingsi.DataTableColumn);878889/构造WHERE条件部分90StringBuildersqlWhere=newStringBuilder(256);91sqlWhere=newStringBuilder(256);92sqlWhere.Append(WHERE);93for(inti=0;ikeyColumnMappings.Length;i+)9495if(i=0)9697sqlWhere.Append(string.Format(0=0,keyColumnMappingsi.SourceColumn);9899else100101sqlWhere.Append(string.Format(AND0=0,keyColumnMappingsi.SourceColumn);102103104105StringBuilde
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象棋延时服务课件
- 2025版高新技术产业聘用员工合同协议示范文本
- 2025版企业绿色转型项目咨询与服务合同
- 2025年度礼品定制采购合同-附加礼品定制及品牌合作计划
- 2025大蒜产业链金融支持服务合同
- 2025年度农业合作社三方租地合作合同范本
- 2025版网络安全防护软件源码授权与保密协议标准范本
- 2025年度电力照明设施安全检测合同
- 2025年股权代持转让及管理服务三方合同
- 诸子论与课件
- 小学科学新教科版二年级上册全册教案(2025秋版)
- 2025年海南省通信网络技术保障中心招聘考试笔试试题(含答案)
- 2025年国家卫生健康委医药卫生科技发展研究中心招聘考试笔试试题(含答案)
- 2025至2030中国PE微粉蜡市场需求量预测及前景动态研究报告
- 2025年辅警招聘公安基础知识题库附含参考答案
- 2025年理赔专业技术职务任职资格考试(理赔员·保险基础知识)历年参考题库含答案详解(5套)
- 2025年北京标准租房合同范本下载
- 中华人民共和国治安管理处罚法2025修订版测试题及答案
- 第一单元复习与提高(单元测试)-五年级上册数学沪教版
- 2025年湖北高考历史试题(含答案解析)
- 新学期教学工作会议上校长讲话:把功夫下在课堂里把心思放在学生上把质量落到细节中
评论
0/150
提交评论