PDA

View Full Version : مبتدی: مشکل در تبدیل کد به فانکشن یا تابع



SajjadStr
یک شنبه 22 مرداد 1391, 13:57 عصر
من با استفاده از کد های زیر ارتباط برنامه ام رو با بانک اطلاعاتی SQL برقرار کردم
و به راحتی با این کدها دستورات add یا همون insert رو پیاده سازی کردم
ابتدا کد ها رو ببینید:

SqlConnection con = new SqlConnection("server=(local);database=test;integrated security=true;");
string cmdstring;
con.Open();
cmdstring = "insert into Student Values('" + textBox1.Text + "','" + textBox2.Text + "')";
SqlCommand cmd = new SqlCommand(cmdstring,con);
cmd.ExecuteNonQuery();

ولی من میخوام این کد ها رو تو سی شارپ طوری پیاده سازی کنم که در کل برنامه قابل شناسایی باشه و اینکه تابعی سراسری در کل برنامه بنویسم که فقط با هر بار فراخوانی متغیر رشته ای cmdstring رو از من بگیره و دیگه در هر جای برنامه من تابع رو صدا زدم و دستور Sql ام رو به تابع ارسال کنه و نتیجه رو از کد های فوق برگردونه یه جورایی میخوام این تابع رو بسازم و یه جایی تو سی شارپ قرار بدم که تو vb.net اسمش ماژول است
پس نتیجه گیری میکنیم
1. من چگونه از کد های فوق این تابع رو بسازم ؟
2. تابع ساخته شده رو کجای سی شارپ قرار بدم که شبیه ماژول تو vb.net باشه یعنی همه جای برنامه قابل شناسایی باشه
امیدوارم متوجه شده باشید چی میگم مشکلی بود بگید بیشتر توضیح بدم
اما شما بگی چگونه اینکارو انجام بدم
ممنون

h_assefi
یک شنبه 22 مرداد 1391, 14:37 عصر
سلام
کاری که شما باید انجام بدی این هستش که یک کلاس تعریف کنی و داخل کلاس یک یا نهایتا 2 تا تابع بنویسی که هر کدوم این تابع ها یک پارامتر ورودی به نام cmstring داشته باشه و خروجی اون تابع را هم از dataset تعریف کنی

SajjadStr
یک شنبه 22 مرداد 1391, 14:42 عصر
میشه شبه کد این کار و برام انجام بدید آخه من مبتدیم اول راهم کمکم کن
برای مثال کدی رو که نوشتم واسم به عنوان نمونه تبدیلش رو بنویس
خدا خیرت بده نماز روزه ات هم قبول

رضا کاویانی
یک شنبه 22 مرداد 1391, 15:08 عصر
یه کلاس مثل این تعریف کن و تو برنامه ات و کلاس های دیگه ازش استفاده کن






using System;
using System.Data;
using System.Data.SqlClient;

public class DataAccessLayer
{
private string connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\My360\App_ Data\360.mdf;Integrated Security=True;User Instance=True";
private SqlConnection connection;
private SqlCommand command;
private SqlDataAdapter dataAdapter;

public DataAccessLayer()
{
connection = new SqlConnection(connectionString);
command = new SqlCommand("", connection);
dataAdapter = new SqlDataAdapter(command);
}

public int DoCommand(string sqlCmd)
{
try
{
command.CommandText = sqlCmd;
return command.ExecuteNonQuery();
}
catch (Exception exp)
{
throw exp;
}

}

public int DoCommand(string sqlCmd, params SqlParameter[] parms)
{
try
{
command.CommandText = sqlCmd;
command.Parameters.AddRange(parms);
return command.ExecuteNonQuery();

}
catch (Exception exp)
{
throw exp;
}

}

public DataTable Select(string selectCmd)
{
try
{
DataTable dataTable = new DataTable();
dataAdapter.SelectCommand.CommandText = selectCmd;
dataAdapter.Fill(dataTable);
return dataTable;
}
catch (Exception exp)
{
throw exp;
}


}

public void Connect()
{
try
{
connection.Open();
}
catch (Exception exp)
{
throw exp;
}
}

public void Disconnect()
{
try
{
connection.Close();
}
catch (Exception exp)
{
throw exp;
}
}
}

h_assefi
یک شنبه 22 مرداد 1391, 15:17 عصر
میشه شبه کد این کار و برام انجام بدید آخه من مبتدیم اول راهم کمکم کن
برای مثال کدی رو که نوشتم واسم به عنوان نمونه تبدیلش رو بنویس
خدا خیرت بده نماز روزه ات هم قبول

این نمونه کدیه که خودم نوشتم و تمام قسمت هاش بصورت پارامتری از بیرون وارد می شه
اولین تابع برای درج ، حذف ، و بروزرسانی هستش و دومین تابع برای خواندن اطلاعات و جستجو هستش
توضیح بیشتری هم خواستی بگو



public void execute(string x, string local , string table,string login)
{
con = new SqlConnection(@"Data Source='" + local + "';Initial Catalog='" + table + "';Integrated Security=True;");

con.Open();
cmdsell = new SqlCommand(x, con);
cmdsell.ExecuteNonQuery();
con.Close();
}

public DataSet return_data(string x, string local, string table)
{
con = new SqlConnection(@"Data Source='" + local + "';Initial Catalog='" + table + "';Integrated Security=True;");
ds = new DataSet();
con.Open();
da = new SqlDataAdapter(x, con);
da.Fill(ds);
con.Close();
return ds;
}