1 。vss不能自动签出的问题:
能正常获取服务器上的Vss项目版本,但visual studio在修改项目文件时不能自动签出,必须手动签出问题
解决办法:将项目所在的本机文件夹属性设置为只读就可以了
2。Sql数据库连接问题
解决办法:远程连接sql数据库总出现连接不上的问题 打上sql server sp4补丁即可
3 项目要解决数据批量从excel中导入的问题
并且要求某字段不为空时具有唯一性,为空时不具有唯一性 自己添加一个触发器
Code
create trigger ksh_error on student
for insert,update
as
if exists(select ksh from student where isnull(ksh,'')<>''
group by ksh having count(*)>1 )
RAISERROR ('Unique Error', 16, 1) 呵呵 这里用了一个小技巧 RAISERROR自定义抛出Sql错误,让程序可以获取到,然后提示给用户
数据批量导入代码如下: SqlBulkCopyOptions.FireTriggers设置在导入数据是激发触发器 不然 触发器和约束等SqlBulkCopy默认是部激发的
Code
DataTable dt = new DataTable();
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1'");
OleDbCommand cmd = new OleDbCommand("Select * From [Sheet1$]", con);
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
adapter.Fill(dt);
Count = dt.Rows.Count;
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(SqlHelper.CONNSTR, SqlBulkCopyOptions.FireTriggers))
{
try
{
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = "Student";//目标表
bcp.ColumnMappings.Add("F1", "ksh");
bcp.ColumnMappings.Add("F2", "xm");
bcp.ColumnMappings.Add("F3", "xb");
bcp.ColumnMappings.Add("F4", "csrq");
bcp.ColumnMappings.Add("F5", "mz");
bcp.ColumnMappings.Add("F6", "zzmm");
bcp.ColumnMappings.Add("F7", "zydh");
bcp.ColumnMappings.Add("F8", "jtzz");
bcp.ColumnMappings.Add("F9", "yzbm");
bcp.ColumnMappings.Add("F10", "rxny");
bcp.ColumnMappings.Add("F11", "sfzh");
bcp.ColumnMappings.Add("F12","byxx");
bcp.ColumnMappings.Add("F13","entranceId");
bcp.WriteToServer(dt);
return true;
}
catch { return false; }
finally
{
con.Dispose();
cmd.Dispose();
} Excel没有表头 默认从F1开始到FN