using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
namespace app_test
{
public partial class Form1 : Form
{
public Form1(string addser)
{
InitializeComponent();
strser = addser;
}
string strser;
SqlConnection Conn; // connect db
SqlCommand com = new SqlCommand(); // run SQL
//SqlDataReader dr; // obj from command
StringBuilder sb = new StringBuilder(); // connect string
//SqlDataAdapter da;
DataSet ds = new DataSet();
//DataTable dt;
BindingSource bs = new BindingSource();
SqlTransaction tr;
FileInfo filein;
string nameP;
//string FullFileName;
//bool IsFind = false;
private void Form1_Load(object sender, EventArgs e)
{
string strConn;
strConn = "Data Source=(" + strser + ");Initial Catalog=ECTDATA;Integrated Security=True";
Conn = new SqlConnection();
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
}
//Conn.ConnectionString = strConn;
//thisConnection.Open();
Conn.Open();
}
strser คือ จะรับค่า ip มาจาก textbox อ่าค่ะ มันมี error
แบบ error 40 could not open a connection to sql server
port 1433 ก็เปิดแล้วนะค่ะ เซตค่าที่ sql server 2005 surface area configuration เป็น local and remote connenctions -> using both icp/ip and named pipes ก็เซต แล้วนะค่ะ
ปกติ SQL SERVER จะ DISABLE การ connect ผ่าน IP ไว้ค่ะ
เพื่อที่จะ CONNECT ผ่าน IP ก็ต้องไป Config ที่ Database server จะตาม Link
ด้านบนก็ได้ แต่เท่าที่จำได้ Microsoft ไม่ค่อยจะ Recomment การ connection ผ่าน IP
เท่าไหร่ แล้วที่สำคัญถ้าคุณจะ connect ผ่าน IP Address แล้ว Connection string
จะมีรูปแบบดังนี้ค่ะ
หรือจะอีกทางเลือกนึงคือ get sql server instance ทั้งหมด จาก network
ของเรา ขึ้นมาแล้วให้ user เลือกเอา แทนที่จะ user พิมพ์เองทั้งหมด
แล้วใช้ connection string ปกติที่คุณใช้อยู่อะนะคะ
แต่ทั้งนี้ทั้งนั้น Microsoft เองก็ไม่ได้การันตีว่าจะ get instance ทั้งหมดออกมาได้
เนื่องจากปัจจัยหลายอย่าง เช่น network traffic ขณะนั้น หรือ การ set ค่าต่างๆ ของ server Code (C#)
using System.Data.Sql;
class Program
{
static void Main()
{
// Retrieve the enumerator instance and then the data.
SqlDataSourceEnumerator instance =
SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
// Display the contents of the table.
DisplayData(table);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
}