.Net 练手笔记

====================== End ===== 文件批量上传系统 .Net
文件批量上传系统 .Net

- 创建数据库 tabUploadFile
 fileID int
 NewFileName 新文件名   100
 OldFileName 原来文件名 200
 SaveAddress 保持的路径 200
 UploadTime  上传时间 datetime -- getdate()
 TypeName    文件类型 50

-- 创建Ch21工程
default.aspx
 
<div>
html-button, btnAttch,Value添加上传控件  AddFileControl
删除上传控件

 <div id="dv1">
  Asp:Button - btnUpload Text:上传
 </div>
</div>


<script lanuage="javasript" >
function AddFileControl()
{
 var innerDiv = document.createElement("div");
 document.getElementById("dv1").appenChild(innerDiv);
 
 var fileCtrol = documeng.createElement("input");
 fileCtrol.name=
 fileCtrol.type="file";
 innerDiv.AppendChile(fileCtrol);

 var btnCtorl = document.createElement("input");
 btnCtrol.name=""
 btnCtrol.type="button";
 btnCtrol.setAttribute("value","删除");
 btnCtrol.οnclick=function(){deleteFileCtrol(this.parentNote) };
 innerDiv.appendChild(btnCtrol);
}

function DeleteFileCtrol(obj)
{
 document.getElementByID("dv1").removeChild(obj);
}

</script>

-------------------
获得上传信息,显示上传的文件

--添加Web page -- uploadFileList.aspx

GridView -- grdFileList (ID) -- Columns --> 添加模板字段
TemplateField 模板字段 -- 文件名 新文件名,老文件名。
BoundField 绑定字段 DataField:uploadTime   ==》 HeaderText 上传时间
BoundField 绑定字段 DataField:TypeName ==》 HeaderText 文件类型
去掉自动生成字段

点击html源文件
<asp:TemplateField HeaderText="文件名">
 <ItemTemplate>
  <asp:hyperlink Id="" runat="server" NavigaterUrl="<%# Eval("SaveAddress")%>" >
  Hyperlinker
  </asp:hyperlink>

  <asp:hyperlink Id="" runat="server" NavigaterUrl="<%# GetFileUrl(Eval("SaveAddress").ToString(),Eval("NewFileName").ToString())%>" >
  <%# Eval("oldFileName")%>
  </asp:hyperlink>

 </ItemTemplate>
</asp:TemplateField>

-- 后台
public string GetFileUrl(string strAddress,string strFileName)
{
 return strAddress + strFileName;
}
==== 界面做好了

连接数据库,Web.Config
<add name="connStr" connectionString="Data Source=localhost;Initial Catalog=ch21DataBase;User Id=sa; Password=sa" />

-- 建立一个公共类
DataClass.cs

using System.Data.SqlClient;
using System.Web.Configuration;

private SqlConnecton GetConn()
{
 SqlConnection conn;
 string strConn = WebConfigurationManager.ConnectionStrings["connStr"].connectionString;
 conn = new SqlConnection(strConn);
 conn.open();
 return conn;
}

private void CloseSqlServerConn(SqlConnection sqlConn)
{
 if(sqlConn.State == SqlConnection.Open)
 {
  sqlConn.Close();
 }
}

public bool SaveFilesInfo(HttpFileCollection fileColl)
{
 sqlConnection sqlConn;
 sqlCommand sqlcomm;
 string strComm = @"insert into
      tabUploadFile(A,B,C,D)
      values(@NewFileName,@B,@C,@D);";

 SqlTransacion sqlTran = Sqlconn.BeginTransaction(); //开始数据库事务
 stringBuilder sdFileName;
 
 try
 {
  sqlComm = new sqlCommand(sqlConn,sqlConn);
  sqoComm.Transcation = sqlTran;
  
  for(fileColl.count)
  {
   if(!String.IsNullOREmpty(fileColl[i].FileName))
   {
    stFileName = new stringBuilder();
    sbFileName.Append(DateTime.Now.Year);
    ..
    sbFileName.Append(DateTime.Now.Millisecond);
    sbFileName.Append(Path.GetExtension(fileColl[i].fileName));
   
   }
   
   sqlComm.Parameters.Clear();
   sqlComm.Parameters.AddWithValue("@A",sbFileName.ToString);
   ...
   sqlComm.Parameters.AddWithValue("@D",sbFileName.ToString);
   

   sqlComm.ExecuteNonQuery();
   fileColl[i].SaveAs(Server.MapPath("~/upload")+sbFileName);
   
  }

  sqlTran.Commit(); // 提交事务
  return true; 
 }
 catch
 {
  sqlTran.Rollback();
  CloseSqlServerConn(sqlConn);
  return false;
 }
}

--
public DataTable GetFilesInfo()
{
 SqlConnection sqlconn;
 SqlDataAdapter sqlAdpt;
 DataTable dtFileInfo;
 string strComm = "select * from tabUpload";

 try
 {
  sqlConn = GetSqlServerConn();
  sqlAdpt = New SqlDataAdapter(strComm,SqlConn);
  dtFileInfo = new DataTable();
  sqlAdpt.Fill(dtFileInfo);
  return dtFilesInfo;
 }
 catch(Exception ex)
 {
  throw ex;
 } 
}


==========
Default.aspx

btnUpload_click
--
HttpFileCollection fileColl = Request.Files;
DataClass dc = new DataClass();
bool bResult = false;

try
{
 bResult = dc.SaveFilesInfo(fileColl);
}
catch(Execption ex)
{

}

if(bResult)
{
 //成功
}
else
{
 //错误
}

---
模板列错误
---- 先删除,再智能添加,在转换为模板列,再调试。 别急
单引号,双引用引起的错误。 小心
---- 外面单引号,里面双引号

双击空白页写 Page_load
if(!this.IspostBack)
{
 this.grdFileList.DataSource = new DataClass().GetFilesInfo();
 this.grdFileList.DataBind();
}

-- 运行测试 ,查看数据库结果 和文件夹里的文件。
报告成功,但是没有任何结果

断点,F11, 进入方法中
<form id="form1" runat="server" enctype="multipart/form-data">
注意: 当设计上传控件时,要enctype="multipart/form-data"

datagrid
日期格式: DataFormatString -- {0:yyyy-MM-dd}

====================== End ===== 文件批量上传

 

============================================================

============ Begin =========== 投票系统

OWC11.Dll 做统计图用

C:/Program Files/Common Files/Microsoft Shared/Web Components/11/OWC11.DLL

VS 2008 , 新建ASP.net 网站, VoteSystem, 添加引用,路径如上所示

数据库设计
 新建数据库 Ch16Database
 ------------
 新建表 tabVoteResult
  VoteId      主键 int ,自增
  VoteContent 投票内容 varchar(10) 
  VoteCount   投票计数 int
 -------------
  1 拨号上网 100
  2 宽带上网 101
  3 无锡上网 200
  4 手机上网 50
  5 光纤上网 210

----------------- 数据库 OK 
Default.aspx
lblTitle : 上网方式在线调查
radiobuttonList

LinkButton lbtnVote: 投票
LinkButton lbtnVoteResult:查看结果

----------------- 页面1 Ok
添加Web页面, VoteResult.aspx

Image : imgVoteResult

----------------- 页面2 Ok
=================================== 写代码

改写 web.config
<connectionStrings>
 <add name="ch16Database" connectionString="Data Source=localhost;Initial Catalog=ch16Database;User Id=sa;Password=sa" />
<connectionStrings/>

写公共类,数据库操作方面
新增: DataClass.cs ,放入 App_Code文件夹中

using System.Data.SqlClient;
using System.Web.Configuration;

Private SqlConnection GetSqlConnection()
{
 SqlConnection sqlConn;
 string strConn = WebConfigurationManager.ConnectionStrings["ch16DataBase"].ConnectionString;
 sqlConn = new Sqlconnection(str);
 sqlConn.Open();
 return sqlConn;
}

private void CloseSqlServerConn(SqlConnection sqlConn)
{
 if(sqlConn.State == ConnectionState.Open)
 {
  sqlConn.Close();
 }
}

public DataTable GetVoteContent()
{
 SqlConnection sqlConn;
 SqlDataAdapter sqlAdpt;
 DataTable dtVoteResult;

 string strComm = "select VoteId,voteContent from tabVoteResult";
 try
 {
  sqlConn = GetSqlServerConn();
  salAdpt = new SqlDataAdapter(strComm,sqlConn);
  dtVoteResult = new DataTable();
  sqlAdpt.Fill(dtVoteResult);
  
  return dtVoteResult;
 }
 catch(Exception ex)
 {
  throw ex;
 }
}

-- 到Default.aspx
using System.Data;

if(!this.IsPostBack)
{
 try
 {
  DataClass dc = new DataClass();
  DataTable dt = dc.GetVoteContent();
  this.lisRbtnVoteContent.DataSource = dt;
  this.lisRbtnVoteContent.DataValueField = "VoteId";
  this.lisRbtnVoteContent.DataTextField = "VoteContent";
  this.lisRbtnVoteContent.DataBind();
  
  this.lisRbtVoteContent.SelectIndex = 0;  
 
 }
 catch(Execption ex)
 {
  Response.Write(ex.Message)
 }
}

----------
DataClass.cs 继续添加如下方法,投票事件

public bool SaveVoteResult(int voteId)
{
 SqlConnection sqlConn;
 SqlCommand sqlComm;
 
 string strComm = @"update tabVoteResult set VoteCount=VoteCount+1 where voteId=@voteId";
 sqlConn = GetSqlServerConn();
 
 try
 {
  sqlComm = new SqlCommand(sqlComm,sqlConn);
  sqlComm.Parameters.AddWithValue("@voteID",voteId);
  sqlComm.ExecuteNonQuery();
  
  return true;
 }
 catch(Execption ex)
 {
  CloseSqlServerConn(sqlConn);
  return false;
 }
}

---------
Default.aspx
点击投票时

DataClass dc = new DataClass();
bool bResult = dc.SaveVoteResult(int.Parse(this.lisRbtnVoteContent.SelectdItem.Values));
if(bResult)
{
 Response.write("<script>alter('投票成功,谢谢您的参与')</script>");
}
else
{
 Reponse.Write("<script>alter('投票失败,希望您再次参与');</script>");
}

--- 在浏览器中查看,看结果
查看数据库,验证结果

--- 继续完成 查看结果
DataClass.cs 添加入

public DataTable GetVoteResult()
{
 SqlConnection sqlConn;
 SqlDataAdapter sqlAdpt;
 DataTable dtVoteResult;
 
 string strComm = "select voteId,voteContent,VoteCount from tabVoteResult";
 try
 {
  sqlConn = GetSqlServerConn();
  sqlAdpt = new SqlDataAdapter(strComm,sqlConn);
  dtVoteResult = new DataTable();
  sqlAdpt.Fill(dtVoteResult);
  return dtVoteResult;
 }
 catch(Execption ex)
 {
  throw ex;
 } 
}

--- 添加 VoteImageClass.cs 到App_Code中

using Microsoft.Office.Interop.Owc11;

public void ChartTypeColumn(DataTable dtVoteResult)
{//创建柱状图
 //=== 略
}

--- 在VoteResult.aspx.cs
Server.Transfer("~/voteResult.aspx");

page_load
{
 DataClass dc = new DataClass();
 VoteImageClass vic = new VoteImageClass();
 vic.ChartTypeColumn(dc.GetVoteResult);
 
 imgVoteResult.ImageUrl = Server.MapPath("~/voteResultImage") + "/imgVote.jpg";
}

============ End =========== 投票系统

为了训练自己的数据集,您可以使用DCGAN(Deep Convolutional Generative Adversarial Networks)模型,并将其调整为条件GAN(Conditional GAN)。DCGAN是一种生成对抗网络,用于生成逼真的图像。条件GAN将GAN的生成器与标签信息相结合,以便生成特定类别的图像。 对于训练自己的数据集,您可以按照以下步骤进行操作: 1. 准备数据集:将您自己的数据集准备好,并确保图像数据的标准化和预处理。这包括调整图像大小、归一化像素值等。 2. 构建生成器和判别器:根据DCGAN的架构,构建生成器和判别器模型。生成器负责生成逼真的图像,而判别器则负责判断生成的图像是真实的还是伪造的。 3. 定义损失函数和优化器:为生成器和判别器定义适当的损失函数。在条件GAN中,损失函数将包括生成器损失和判别器损失。使用适当的优化器来最小化损失函数。 4. 训练模型:使用准备好的数据集,将生成器和判别器进行训练。通过交替地训练生成器和判别器,使它们互相竞争和改进。 5. 评估和调优:在训练过程中,您可以定期评估生成器的性能,并根据需要进行调优。可以通过可视化生成的图像来评估生成器的质量。 通过按照以上步骤训练DCGAN模型,并使用条件GAN的思想,您可以训练自己的数据集,并生成与标签相关的图像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [生成对抗网络学习笔记-----GAN网络入门学习(重写Dataset类---用于你自己的数据集,损失函数,训练代码)...](https://blog.csdn.net/weixin_44911037/article/details/123494911)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [conditional-DCGAN-for-MNIST:Tensorflow中的条件DCGAN,用于从MNIST数据集中生成手写数字](https://download.csdn.net/download/weixin_42139042/18277032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [使用keras 搭建Gans在Mnist数据集上训练总结](https://blog.csdn.net/qq_41389266/article/details/104588848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值