DataGridView没有存储功能,不叫导入,他是显示、读取、编辑数据用的。如果你的Grid里有数据他来自哪个表啊?你就要分析哪个表与Excel表的关系,而不是Grid与Excel表的关系。用Grid可以直接连接Excel表,不需要做导入操作,估计你意思是Grid里有数据了,修改里面的数据插入Excel匹配数据项。先可以读取Excel数据,然后插入到你Grid显示的表里,而不是Grid里。
成都地区优秀IDC服务器托管提供商(创新互联建站).为客户提供专业的成都IDC机房托管,四川各地服务器托管,成都IDC机房托管、多线服务器托管.托管咨询专线:028-86922220
OleDbConnection cnn=new OleDbConnection();
cnn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StrartUpPath + "/Excel名称.xls;Extended Properties='Excel 8.0;HDR=YES'";
cnn.Open();
try
{
sql="Select 字段名 From [Sheet1$] where 条件表达式";
OleDbDataAdapter oda=new OleDbDataAdapter(sql,cnn);
DataSetds=new DataSet();
oda.Fill(ds);
if(ds.Tables[0].Rows.Countamp;gt;0)
{
//...继续连接数据库,也填充一个DataSet对象ds1
//...把Excel数据循环遍历方式或者用跨数据库方式(或ACCESS整理方式)插入数据库
dataGridView.DataSource=ds1.Tables[0];
}
}
catch
{
cnn.Close();
MessageBox.Show("数据库文件丢失","系统消息");
}
finnly
{
cnn.Close();
}
sql 为string
不知道你看懂没有
我是 vb/asp 转 c#/MVC/WPF 的人,可能能给你一点指导
服务端和客户端 通常有两种方式,一种是 socket,一种是 http,
无非是 资料放到服务器(DataBase),通过接口(如http/socket),与 客户软件(如exe) 进行数据的交互。
先学一下 TCP/UDP 客户端、服务端
再学一下 HTTP(GET/POST)
用vba可以实现,不难。要看你具体做什么,下面是一个录制的宏,替换aaa为axa,然后替换bbb为xbx。
Sub 宏2()
'
' 宏2 宏
'
'
Cells.Replace What:="aaa", Replacement:="axa", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="bbb", Replacement:="xbx", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
一个月。vb.net开发软件试用期为一个月。VB.NET是一种简单,现代面向对象的计算机编程语言,是由微软开发。将.NETFramework和公共语言运行库的强大功能相结合。
1 生成txt文件。
DimSaveFileDialog1AsNewSaveFileDialog() '创建一个保存对话框
SaveFileDialog1.Filter ="txt files (*.txt)|*.txt" '设置扩展名
IfSaveFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OKThen '如果确定保存
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.Filename, Textbox1.Text,False) '保存文本,False表示不追加文本,直接覆盖其内容
EndIf
原文链接:
private const int GWL_STYLE = (-16);
private const int GWL_EXSTYLE = (-20);
private const uint WS_EX_LAYERED = 0x80000;
private const uint WS_EX_TRANSPARENT = 0x20;
private const uint WS_THICKFRAME = 262144;
private const uint WS_BORDER = 8388608;
/// summary使指定 「 see cref="IntPtr"/ 句柄」 窗体 边框样式变为无边框。/summary
public static uint 无边框窗体(IntPtr 句柄) {
uint style = API_窗口.GetWindowLong(句柄, GWL_STYLE);
style = ~WS_BORDER;
style = ~WS_THICKFRAME;
return API_窗口.SetWindowLong(句柄, GWL_STYLE, style); ;
}
API窗口静态类
[DllImport("user32", EntryPoint = "SetWindowLong")]
public static extern uint SetWindowLong(IntPtr hwnd, int nIndex, uint dwNewLong);
[DllImport("user32", EntryPoint = "GetWindowLong")]
public static extern uint GetWindowLong(IntPtr hwnd, int nIndex);
修改窗口位置
/// summary
/// 设置窗体的位置和大小。
/// /summary
/// param name="hWnd"/param
/// param name="hWndInsertAfter"用于标识在z-顺序的此 CWnd 对象之前的 CWnd 对象。
/// para/para如果uFlags参数中设置了SWP_NOZORDER标记则本参数将被忽略。可为下列值之一:
/// para/paraHWND_BOTTOM:值为1,将窗体置于Z序的底部。如果参数hWnd标识了一个顶层窗体,则窗体失去顶级位置,并且被置在其他窗体的底部。
/// para/paraHWND_NOTOPMOST:值为-2,将窗体置于所有非顶层窗体之上(即在所有顶层窗体之后)。如果窗体已经是非顶层窗体则该标志不起作用。
/// para/paraHWND_TOP:值为0,将窗体置于Z序的顶部。
/// para/paraHWND_TOPMOST:值为-1,将窗体置于所有非顶层窗体之上。即使窗体未被激活窗体也将保持顶级位置。/param
/// param name="x"窗体新的x坐标。如hwnd是一个子窗体,则x用父窗体的客户区坐标表示/param
/// param name="y"窗体新的y坐标。如hwnd是一个子窗体,则y用父窗体的客户区坐标表示/param
/// param name="Width"指定新的窗体宽度/param
/// param name="Height"指定新的窗体高度/param
/// param name="wFlags"/param
/// returns/returns
[DllImport("user32.dll", CharSet = CharSet.Ansi, EntryPoint = "SetWindowPos")]
public static extern int SetWindowPos(IntPtr hWnd, hWndInsertAfter hWndInsertAfter, int x, int y, int Width, int Height, wFlags wFlags);
/// summary
/// 调整指定 「 see cref="IntPtr"/ 句柄」 窗体的位置和尺寸。
/// /summary
/// param name="句柄"指定 「 see cref="IntPtr"/ 句柄」 窗体/param
/// param name="x"横坐标/param
/// param name="y"纵坐标/param
/// param name="w"宽/param
/// param name="h"高/param
public static int 调整窗体(IntPtr 句柄, int x, int y, int w, int h) {
return API_窗口.SetWindowPos(句柄, 0, x, y, w, h, wFlags.SWP_NOZORDER);
}
/// summary
/// 调整指定 「 see cref="IntPtr"/ 句柄」 窗体的位置。
/// /summary
/// param name="句柄"指定 「 see cref="IntPtr"/ 句柄」 窗体/param
/// param name="x"横坐标/param
/// param name="y"纵坐标/param
public static int 调整窗体位置(IntPtr 句柄, int x, int y) {
return API_窗口.SetWindowPos(句柄, 0, x, y, 0, 0, wFlags.SWP_NOSIZE | wFlags.SWP_NOZORDER);
}