DataGridView沒有存儲(chǔ)功能,不叫導(dǎo)入,他是顯示、讀取、編輯數(shù)據(jù)用的。如果你的Grid里有數(shù)據(jù)他來自哪個(gè)表啊?你就要分析哪個(gè)表與Excel表的關(guān)系,而不是Grid與Excel表的關(guān)系。用Grid可以直接連接Excel表,不需要做導(dǎo)入操作,估計(jì)你意思是Grid里有數(shù)據(jù)了,修改里面的數(shù)據(jù)插入Excel匹配數(shù)據(jù)項(xiàng)。先可以讀取Excel數(shù)據(jù),然后插入到你Grid顯示的表里,而不是Grid里。
成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(創(chuàng)新互聯(lián)建站).為客戶提供專業(yè)的成都IDC機(jī)房托管,四川各地服務(wù)器托管,成都IDC機(jī)房托管、多線服務(wù)器托管.托管咨詢專線: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 條件表達(dá)式";
OleDbDataAdapter oda=new OleDbDataAdapter(sql,cnn);
DataSetds=new DataSet();
oda.Fill(ds);
if(ds.Tables[0].Rows.Countamp;gt;0)
{
//...繼續(xù)連接數(shù)據(jù)庫(kù),也填充一個(gè)DataSet對(duì)象ds1
//...把Excel數(shù)據(jù)循環(huán)遍歷方式或者用跨數(shù)據(jù)庫(kù)方式(或ACCESS整理方式)插入數(shù)據(jù)庫(kù)
dataGridView.DataSource=ds1.Tables[0];
}
}
catch
{
cnn.Close();
MessageBox.Show("數(shù)據(jù)庫(kù)文件丟失","系統(tǒng)消息");
}
finnly
{
cnn.Close();
}
sql 為string
不知道你看懂沒有
我是 vb/asp 轉(zhuǎn) c#/MVC/WPF 的人,可能能給你一點(diǎn)指導(dǎo)
服務(wù)端和客戶端 通常有兩種方式,一種是 socket,一種是 http,
無非是 資料放到服務(wù)器(DataBase),通過接口(如http/socket),與 客戶軟件(如exe) 進(jìn)行數(shù)據(jù)的交互。
先學(xué)一下 TCP/UDP 客戶端、服務(wù)端
再學(xué)一下 HTTP(GET/POST)
用vba可以實(shí)現(xiàn),不難。要看你具體做什么,下面是一個(gè)錄制的宏,替換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
一個(gè)月。vb.net開發(fā)軟件試用期為一個(gè)月。VB.NET是一種簡(jiǎn)單,現(xiàn)代面向?qū)ο蟮挠?jì)算機(jī)編程語(yǔ)言,是由微軟開發(fā)。將.NETFramework和公共語(yǔ)言運(yùn)行庫(kù)的強(qiáng)大功能相結(jié)合。
1 生成txt文件。
DimSaveFileDialog1AsNewSaveFileDialog()?'創(chuàng)建一個(gè)保存對(duì)話框
SaveFileDialog1.Filter?="txt?files?(*.txt)|*.txt"?'設(shè)置擴(kuò)展名
IfSaveFileDialog1.ShowDialog()?=?System.Windows.Forms.DialogResult.OKThen?'如果確定保存
My.Computer.FileSystem.WriteAllText(SaveFileDialog1.Filename,?Textbox1.Text,False)?'保存文本,False表示不追加文本,直接覆蓋其內(nèi)容
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"/ 句柄」 窗體 邊框樣式變?yōu)闊o邊框。/summary
? public static uint 無邊框窗體(IntPtr 句柄) {
? ? ? uint style = API_窗口.GetWindowLong(句柄, GWL_STYLE);
? ? ? style = ~WS_BORDER;
? ? ? style = ~WS_THICKFRAME;
? ? ? return API_窗口.SetWindowLong(句柄, GWL_STYLE, style); ;
? }
API窗口靜態(tài)類
? [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
? /// 設(shè)置窗體的位置和大小。
? /// /summary
? /// param name="hWnd"/param
? /// param name="hWndInsertAfter"用于標(biāo)識(shí)在z-順序的此 CWnd 對(duì)象之前的 CWnd 對(duì)象。
? /// para/para如果uFlags參數(shù)中設(shè)置了SWP_NOZORDER標(biāo)記則本參數(shù)將被忽略??蔀橄铝兄抵唬?/p>
? /// para/paraHWND_BOTTOM:值為1,將窗體置于Z序的底部。如果參數(shù)hWnd標(biāo)識(shí)了一個(gè)頂層窗體,則窗體失去頂級(jí)位置,并且被置在其他窗體的底部。
? /// para/paraHWND_NOTOPMOST:值為-2,將窗體置于所有非頂層窗體之上(即在所有頂層窗體之后)。如果窗體已經(jīng)是非頂層窗體則該標(biāo)志不起作用。
? /// para/paraHWND_TOP:值為0,將窗體置于Z序的頂部。
? /// para/paraHWND_TOPMOST:值為-1,將窗體置于所有非頂層窗體之上。即使窗體未被激活窗體也將保持頂級(jí)位置。/param
? /// param name="x"窗體新的x坐標(biāo)。如hwnd是一個(gè)子窗體,則x用父窗體的客戶區(qū)坐標(biāo)表示/param
? /// param name="y"窗體新的y坐標(biāo)。如hwnd是一個(gè)子窗體,則y用父窗體的客戶區(qū)坐標(biāo)表示/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
? /// 調(diào)整指定 「 see cref="IntPtr"/ 句柄」 窗體的位置和尺寸。
? /// /summary
? /// param name="句柄"指定 「 see cref="IntPtr"/ 句柄」 窗體/param
? /// param name="x"橫坐標(biāo)/param
? /// param name="y"縱坐標(biāo)/param
? /// param name="w"寬/param
? /// param name="h"高/param
? public static int 調(diào)整窗體(IntPtr 句柄, int x, int y, int w, int h) {
? ? ? return API_窗口.SetWindowPos(句柄, 0, x, y, w, h, wFlags.SWP_NOZORDER);
? }
? /// summary
? /// 調(diào)整指定 「 see cref="IntPtr"/ 句柄」 窗體的位置。
? /// /summary
? /// param name="句柄"指定 「 see cref="IntPtr"/ 句柄」 窗體/param
? /// param name="x"橫坐標(biāo)/param
? /// param name="y"縱坐標(biāo)/param
? public static int 調(diào)整窗體位置(IntPtr 句柄, int x, int y) {
? ? ? return API_窗口.SetWindowPos(句柄, 0, x, y, 0, 0, wFlags.SWP_NOSIZE | wFlags.SWP_NOZORDER);
? }