本文实例为大家分享了winform编辑器的具体实现代码,供大家参考,具体内容如下
using system;
using system.collections.generic;
using system测试数据ponentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
using system.data.sqlclient;
using system.io;
namespace winformdemo
{
public partial class form1 : form
{
public form1()
{
initializecomponent();
//让textbox2隐藏
this .textbox2.visible = false ;
//让datagridview1表中的最后一行空值隐藏掉
this .datagridview1.allowusertoaddrows = false ;
}
sqlconnection con = new sqlconnection();
sqlcommand com = new sqlcommand();
openfiledialog open = new openfiledialog();
/// <summary>
/// 行
/// </summary>
string clickrow = "" ;
/// <summary>
/// 列
/// </summary>
string clickcells = "" ;
/// <summary>
/// 行和列相加的字符串
/// </summary>
string sqllanding = "server=.;uid=sa;pwd=123456789;database=myfirstdemo" ;
private void datagridview1_cellcontentclick( object sender, datagridviewcelleventargs e)
{
//获取正在点击的行和列。
clickrow = this .datagridview1.rows[e.rowindex].cells[0].value.tostring();
clickcells = this .datagridview1.rows[e.rowindex].cells[1].value.tostring();
}
private void form1_load( object sender, eventargs e)
{
selectinfo();
}
public void selectinfo()
{
//断开式链接查看数据库数据
con.connectionstring = sqllanding;
com测试数据mandtext = "select name as 文件名,txtlujing as 文件路径 from txtbianjiqi" ;
com.connection = con;
dataset ds = new dataset();
sqldataadapter sda = new sqldataadapter(com);
sda.fill(ds);
this .datagridview1.datasource = ds.tables[0];
}
private void 打开toolstripmenuitem_click( object sender, eventargs e)
{
string filepath = clickcells + clickrow;
this .textbox2.visible = true ;
try
{
//只读流;
filestream fss = new filestream(filepath, filemode.openorcreate, fileaccess.read);
streamreader sww = new streamreader(fss, encoding. default );
textbox2.text = sww.readtoend();
sww.close();
fss.close();
}
catch (exception ex)
{
//如果没有选择路径提示出一句话;
messagebox.show( "查看路径错误:" + ex.message);
}
}
private void 保存toolstripmenuitem_click( object sender, eventargs e)
{
string filepath = clickcells + clickrow;
try
{
//只写流;
filestream fss = new filestream(filepath, filemode.create, fileaccess.write);
streamwriter sww = new streamwriter(fss, encoding. default );
sww.write(textbox2.text);
sww.close();
fss.close();
messagebox.show( "保存成功!" );
}
catch (exception ex)
{
//如果没有选择路径提示出一句话;
messagebox.show( "保存路径错误:" + ex.message);
}
this .textbox2.visible = false ;
}
private void 新建toolstripmenuitem_click( object sender, eventargs e)
{
this .textbox2.text = "" ;
string localfilepath = "" ;
string filenameext = "" ;
string flie = "" ;
savefiledialog savefiledialog = new savefiledialog();
//打开默认的文件目录
savefiledialog.initialdirectory = "d:\\\\text\\" ;
//文件后缀名
savefiledialog.filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" ;
savefiledialog.filterindex = 2;
string lujing = savefiledialog.initialdirectory;
if (savefiledialog.showdialog() == dialogresult.ok)
{
flie = savefiledialog.filename;
//文件目录名
localfilepath = savefiledialog.filename.tostring();
//截取文件名字
filenameext = localfilepath.substring(localfilepath.lastindexof( "\\" ) + 1);
}
string sql = "select name from txtbianjiqi" ;
sqlcommand co = new sqlcommand(sql, con);
sqldataadapter da = new sqldataadapter(co);
dataset dss = new dataset();
da.fill(dss);
//循环判断传入的表中name
for ( int i = 0; i < dss.tables[0].rows.count; i++)
{
//定一个变量去接获取出来name
string ss = dss.tables[0].rows[i][0].tostring();
//判断对话框里输入的值是否与查出来的name相同
if (filenameext == ss)
{
messagebox.show( "文件已更改!" );
return ;
}
}
try
{
//只写流
filestream fs = new filestream(flie, filemode.create, fileaccess.write);
streamwriter sw = new streamwriter(fs, encoding. default ); //对话框另存为。
sw.write(textbox2.text);
sw.flush();
fs.close();
con.connectionstring = sqllanding;
//往数据库添加 文件名和路径名 sql语句
com测试数据mandtext = string .format( "insert into txtbianjiqi(name,txtlujing)values('{0}','{1}')" , filenameext, lujing);
com.connection = con;
con.open();
int insertinto = convert.toint32(com.executescalar());
if (insertinto > 0)
{
messagebox.show( "操作失败!请重试。" );
}
else
{
messagebox.show( "添加成功!" );
this .textbox2.visible = false ;
}
}
catch (exception ex)
{
messagebox.show( "添加日志失败:" + ex.message);
}
con.close();
selectinfo();
}
private void 删除toolstripmenuitem_click( object sender, eventargs e)
{
con.connectionstring = sqllanding;
//从数据库删除正在点击的文件名
com测试数据mandtext = string .format( "delete from txtbianjiqi where name='{0}'" , clickrow);
com.connection = con;
con.open();
dialogresult dr = messagebox.show( "确认删除?" , "提示" , messageboxbuttons.okcancel, messageboxicon.information);
if (dr == dialogresult.ok)
{
int insertinto = convert.toint32(com.executescalar());
if (insertinto > 0)
{
messagebox.show( "操作失误!!" );
}
else
{
//file.delete(clickcells + clickrow);删除windows里的文件,括号里是要删除文档的路径。
file.delete(clickcells + clickrow);
messagebox.show( "删除成功!" );
}
}
con.close();
selectinfo();
}
private void 退出toolstripmenuitem_click( object sender, eventargs e)
{
this .close();
}
}
}
就是写了一个挺简单的在winform里进行填写文本,里面用到的ado.net来链接数据库,在新建文本的时候需要写入.txt后缀名,打开或者是删除的时候需要先点击一下文本名。 写的不足请见谅!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://HdhCmsTestcnblogs测试数据/shigezhuang/archive/2017/08/21/7406131.html
dy("nrwz");