PDA

View Full Version : سوال: برگرداندن مقدار یک فیلد جدول



vhossein
یک شنبه 11 بهمن 1388, 10:38 صبح
سلام.من می خوام مقدار 1 فیلد جدول را که قبلا ثبت شده را بدست بیارم و روش کار انجام بدم.چطوری می تونم این مقدار را بدست بیارم؟؟

sky_in_iran
یک شنبه 11 بهمن 1388, 10:48 صبح
سلام دوست عزيز
ميشه بيشتر توضيح بديد ، سوالت گنگه !!!
اين 1 مقدار و از كجا ميخواي بخوني از بانك از گريد از كجا ؟
لطفا بيشتر توضيح دهيد سپاسگزارم

aminh85
یک شنبه 11 بهمن 1388, 11:28 صبح
کدی که واست میذارم میاد تو یه جدول select میکنه و فیلدهایی که میخوایو بر اساس شرطی که میذاری پیدا میکنه و تو متغیر ذخیره می کنه. امیدوار بدردت بخوره.


private void checker()
{
strCon = "Server=localhost;Database=iron;User ID=sa;Password=zhs123;";
string strSql = "SELECT inttype AS p11, decrm AS p12, decpm AS p13, inttype2 AS p21, decrm2 AS p22, decpm2 AS p23, inttype3 AS p31, decrm3 AS p32, decpm3 AS p33, intexcode AS p4 " +
"FROM tblanbar WHERE intacode=" + txtAnbarCode.Text;
da = new SqlDataAdapter(strSql, strCon);
ds = new DataSet();
da.Fill(ds, "tblanbar");
tt1 = Convert.ToInt16(ds.Tables["tblanbar"].Rows[0]["p11"]);
tt2 = Convert.ToInt16(ds.Tables["tblanbar"].Rows[0]["p21"]);
tt3 = Convert.ToInt16(ds.Tables["tblanbar"].Rows[0]["p31"]);
r1 = Convert.ToDouble(ds.Tables["tblanbar"].Rows[0]["p12"]);
r2 = Convert.ToDouble(ds.Tables["tblanbar"].Rows[0]["p22"]);
r3 = Convert.ToDouble(ds.Tables["tblanbar"].Rows[0]["p32"]);
p1 = Convert.ToDouble(ds.Tables["tblanbar"].Rows[0]["p13"]);
p2 = Convert.ToDouble(ds.Tables["tblanbar"].Rows[0]["p23"]);
p3 = Convert.ToDouble(ds.Tables["tblanbar"].Rows[0]["p33"]);
excode = Convert.ToInt32(ds.Tables["tblanbar"].Rows[0]["p4"]);

strSql = "SELECT decscale AS t11, intunit AS t12, decexscale AS t21, intexunit AS t22, decexscale2 AS t31, intexunit2 AS t32 " +
"FROM tblexchange WHERE intexcode =" + excode;
da = new SqlDataAdapter(strSql, strCon);
ds = new DataSet();
da.Fill(ds, "tblexchange");
s1 = Convert.ToDouble(ds.Tables["tblexchange"].Rows[0]["t11"]);
s2 = Convert.ToDouble(ds.Tables["tblexchange"].Rows[0]["t21"]);
s3 = Convert.ToDouble(ds.Tables["tblexchange"].Rows[0]["t31"]);
u1 = Convert.ToInt32(ds.Tables["tblexchange"].Rows[0]["t12"]);
u2 = Convert.ToInt32(ds.Tables["tblexchange"].Rows[0]["t22"]);
u3 = Convert.ToInt32(ds.Tables["tblexchange"].Rows[0]["t32"]);

}

vhossein
یک شنبه 11 بهمن 1388, 14:34 عصر
از حدول بخونم نه از datagrideview.من می خوام یرای یک شخص که قبلا اطلاعاتش را ذخیره کردم وقتی 2باره اطلاعاتش ثبت شد(تشخیص بر حسب کلید جدول) رکورد جدید به وجود نیاید فقط با 1 دستور update مقدار خریدش(فیلد مجموع خرید) را با مقدار جدید وارد شده جمع کند برای این کار اگه بتونم مقدار فیلد خرید قبلی را بدست بیارو می تونم با مقدار فعلی جمع کنم.مقدار فیلد قبلی را چگونه بدست بیارم؟

aminh85
یک شنبه 11 بهمن 1388, 14:49 عصر
فکر کنم این تیکه کد بدردت بخوره. این تیکه کد برای برنامه حضور و غیابه. اگه طرف تو تاریخ مورد نظر اولین باری باش که کارت میکشه، یه رکورد جدید ایجاد می کنه، ورود طرفو ثبت می کنه. دفعه بعد که کارت میکشه، رکورد قبلیو update میکنه. برای دفعات بعدی error میده. تقریبا شبیه به پروژه ایه که داری می نویسی.


string tCardCode, tDate;
tCardCode = txtCardCode.Text;
tDate = txtDate.Text;
string strCon1 = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + Application.StartupPath + "\\db.mdb";
string strSql1 = "SELECT * FROM enex WHERE eccode = '" + tCardCode + "' AND rdate = '" + tDate + "'";
OleDbDataAdapter objDataAdapter1 = new OleDbDataAdapter(strSql1, strCon1);
DataSet objDataSet1 = new DataSet();
objDataAdapter1.Fill(objDataSet1, "enex");
int count = objDataSet1.Tables["enex"].Rows.Count;
//***************************************** enter=0, exit=0 ********************
if (count == 0)
{
string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + Application.StartupPath + "\\db.mdb";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
myOleDbCommand.CommandText = "INSERT INTO enex " +
"(enexcode, eccode, ecode, rdate, stime, enote) " +
"VALUES(@enexcode, @eccode, @ecode, @rdate, @stime, @enote);";
myOleDbCommand.Parameters.AddWithValue("@enexcode", Convert.ToInt32(txtEnExCode.Text));
myOleDbCommand.Parameters.AddWithValue("@eccode", txtCardCode.Text);
myOleDbCommand.Parameters.AddWithValue("@ecode", Convert.ToInt32(txtEmpCode.Text));
myOleDbCommand.Parameters.AddWithValue("@rdate", txtDate.Text);
myOleDbCommand.Parameters.AddWithValue("@stime", txtTime.Text);
myOleDbCommand.Parameters.AddWithValue("@enote", txtnote.Text);
myOleDbConnection.Open();
myOleDbCommand.ExecuteNonQuery();
myOleDbConnection.Close();
MessageBox.Show(" ", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
ClearObject();
GetMaxCode();
}
else if (count == 1)
{
string tstime, tetime;
tstime = "";
tetime = "";
string strCon2 = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + Application.StartupPath + "\\db.mdb";
string strSql2 = "SELECT stime, etime FROM enex WHERE eccode = '" + tCardCode + "' AND rdate = '" + tDate + "'";
OleDbDataAdapter objDataAdapter2 = new OleDbDataAdapter(strSql2, strCon2);
DataSet objDataSet2 = new DataSet();
objDataAdapter2.Fill(objDataSet2, "enex");
int ccc = objDataSet2.Tables["enex"].Rows.Count;
if (ccc != 0)
{
tstime = Convert.ToString(objDataSet2.Tables["enex"].Rows[0]["stime"]);
tetime = Convert.ToString(objDataSet2.Tables["enex"].Rows[0]["etime"]);
}
//***************************************** enter=1, exit=0 ********************
if (tstime != "" && tetime == "")
{
string ts, te, td;
ts = tstime;
te = txtTime.Text;
td = Convert.ToDateTime(te) - Convert.ToDateTime(ts) + "";
string connectionString3 = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + Application.StartupPath + "\\db.mdb";
OleDbConnection myOleDbConnection3 = new OleDbConnection(connectionString3);
OleDbCommand myOleDbCommand3 = myOleDbConnection3.CreateCommand();
myOleDbCommand3.CommandText = " UPDATE enex SET etime = '" + te + "', duration = '" + td.Substring(0, 5) +
"' WHERE eccode = '" + txtCardCode.Text + "' AND rdate = '" + txtDate.Text + "'";
myOleDbConnection3.Open();
myOleDbCommand3.ExecuteNonQuery();
myOleDbConnection3.Close();
MessageBox.Show(" ", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
ClearObject();
GetMaxCode();
}
else if (tstime != "" && tetime != "")
{
MessageBox.Show(" ", "", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
ClearObject();
GetMaxCode();
}

}

البته دیتابیسش اکسسه!