C#与数据库
本文探讨了C#中的关键概念如垃圾回收、反射及ADO.NET的使用,并对比了HashMap与Hashtable的不同之处。此外还介绍了如何确保Windows程序单例运行、字符串翻转的方法、以及ADO.NET的两种访问模式。

.net 理解,垃圾回收机制,页面传值
++++++++++++++++++++++++++++++++++++++++++
C#反射,泛型,继承,接口与抽象类的区别,虚函数,using的用法,webservice,
ref.out,params
const,readonly
property 与 attribute
HashMap,Hashtable的区别
错误处理机制
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map

接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上

可能高于Hashtable
+++++++++++++++++++++++++++++++++++++++++++++++++++


程序
1.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];

2,C#代码实现,确保windows程序只有一个实例(instance)
///
///应用程序的主入口点。
///
[STAThread]
staticvoid Main()
{
//防止程序多次运行
if(!OneInstance.IsFirst("GetPayInfo"))
{
MessageBox.Show ("警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏

找到!","程序错误提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
Application.Run(new Form1());
}
// ******************* 防止程序多次执行 **************************


publicabstractclass OneInstance
{
///
///判断程序是否正在运行
///
/// ///如果程序是第一次运行返回True,否则返回False
publicstaticbool IsFirst(string appId)
{
bool ret=false;
if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)
{
CreateMutex(IntPtr.Zero,0,appId);
ret=true;
}
return ret;
}
[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr OpenMutex(
uint dwDesiredAccess, // access
int bInheritHandle, // inheritance option
string lpName // object name
);

[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr CreateMutex(
IntPtr lpMutexAttributes, // SD
int bInitialOwner, // initial owner
string lpName // object name
);
}
3,写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用 例。
4,数组元素是否重复

+++++++++++++++++++++++++++++
核心的ADO.NET功能基本上可以被概括为如下内容:

Connection对象在Web页面和数据库间建立连接。Commands对象向数据库提供者发出命令,返回的结果以一种流的方式贯穿于这些连接中。结果集可以用DataReaders快速的读取,也可以储存到驻留内存的DateSets对象中,然后通过DateSetCommands对象让用户在数据集中访问和操作记录。开发者可以用过DateSet内置的方法在基础的数据源上去处理数据集。

7.请具体概述ADO.NET的两种访问模式?
答:连接访问模式,非连接访问模式。非连接模式:利用DataSet,把数据从数据库中缓冲到内存中,减少了服务器的资源,使更多的用户可以访问数据库,提到高了数据库的访问效率。连接模式:独占数据库资源。大大降低了数据库的访问效率。


Q2:ADO。NET相对于ADO等主要有什么改进?
答:我个人认为,ADO.NET与ADO相比,优势在于提供了数据集和数据适配器,有利于实现分布式处理,降低了对数据库服务器资源的消耗

DataReader和DataSet的异同
DataReader 和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection 的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为 DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...

8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?

数据库知识题
17.使用什么工具来调用存储过程
18.SQL Server的两种索引是何形式?索引的作用?索引的优缺点?
19.触发器的作用

1.存储过程和函数的区别
存储过程是编译好的存储在数据库的操作,函数不用说了。。。

2.事务是什么?
具有原子性特点

3.游标的作用?如何知道游标已经到了最后?
指示当前记录的位置,检查NULL

4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
一个是操作前,一个是操作后
用Singleton如何写设计模式

### 散电流的概念 散电流是指在非预期路径上流动的电流。这种电流可能出现在电子电路、铁路系统或其他电气设备中,通常是由不良接地、绝缘故障或电磁干扰引起的[^1]。 ### 在电子电路中的影响及解决方案 #### 影响 在电子电路中,散电流可能导致以下问题: - **信号干扰**:散电流可能引起不必要的电磁干扰(EMI),从而影响信号质量。 - **元件损坏**:如果散电流较大,可能会导致电路元件过热或损坏。 - **数据错误**:在数字电路中,散电流可能导致逻辑错误,进而影响系统的正常运行[^2]。 #### 解决方案 为了解决电子电路中的散电流问题,可以采取以下措施: ```python # 示例代码:使用滤波器减少EMI import numpy as np def apply_filter(signal, cutoff_frequency): # 模拟低通滤波器 filtered_signal = np.fft.rfft(signal) filtered_signal[cutoff_frequency:] = 0 return np.fft.irfft(filtered_signal) signal = np.random.randn(1000) # 假设输入信号 filtered_signal = apply_filter(signal, 50) # 应用滤波器 ``` - **优化接地设计**:确保所有电路元件具有良好的接地连接,以减少散电流的产生。 - **使用屏蔽和滤波器**:通过使用屏蔽电缆和滤波器来减少电磁干扰的影响。 - **改进电路布局**:合理设计PCB布局,避免高电流路径与敏感信号线交叉[^3]。 ### 在铁路系统中的影响及解决方案 #### 影响 在铁路系统中,散电流主要来源于直流牵引供电系统。其影响包括: - **结构腐蚀**:散电流可能通过钢轨泄漏到周围土壤中,对钢筋混凝土结构造成电化学腐蚀。 - **设备损坏**:长期的散电流可能导致轨道电路和信号设备的性能下降或损坏。 - **安全隐患**:散电流可能引发触电事故,威胁人员安全[^4]。 #### 解决方案 针对铁路系统中的散电流问题,可以采取以下措施: - **安装排流网**:通过设置专门的排流网将散电流引导回牵引变电站,减少对周围结构的影响。 - **加强绝缘措施**:提高钢轨与地面之间的绝缘性能,减少电流泄漏。 - **定期监测**:利用在线监测系统实时检测散电流的大小和分布,及时发现并解决问题[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值