برای سوالات مربوط به کریستال ریپورت، بخش جداگانه ای در همین سایت وجود داره که سریعتر تو رو به جواب میرسونه ولی این لینک رو برات میذارم که برای شروع عالیه :
http://www.codeproject.com/useritems...tal_Report.asp
2 - آقا من نه در پرسیجر و نه در جایی دیگر اگر بخواهم اطلاعات آخرین پست را در چند تکس باکس نشان دهم باید چکار کنم ( البته نمیخواهم اطلاعات را FILL کنم و داخل دیتاست بریزم ! فقط آخرین سطر اضافه شده )
در این مورد هم فکر کنم قبلا جوابتون رو دادم، اینجا نمونه کدی که کالتر هست رو برات میذارم که آخرین رکورد رو بر اساس فیلد customerID فراخوانی میکنی و سه تا فیلدشو در سه textBox نمایش میده که به این صورت میتونی داده ها تو در textBox ها نمایش بدی :
private void button5_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=northwind;Persist Security Info=True;User ID=sa;Password=09126511085");
SqlCommand cmd = new SqlCommand("select top 1 * from Customers order by customerID desc", con);
SqlDataReader dr;
con.Open();
dr = cmd.ExecuteReader();
dt.Load(dr);
con.Close();
this.dataGridView3.DataSource = dt.DefaultView;
this.textBox1.DataBindings.Add("Text", dt.DefaultView, "customerID");
this.textBox2.DataBindings.Add("Text", dt.DefaultView, "companyName");
this.textBox3.DataBindings.Add("Text", dt.DefaultView, "contactName");
}
3 - چگونه فقط یک سطر خاص را به دیتاست بیارم مثلا من برای جدولم ID میزارم و برای آنشمارهنده اتوماتیک میزارم وحالا میخواهم سطری را که شماره ID آن 1 است به دیتاست بیارم روی آن ویرایش انجام دهم ! فقط آن سطر را بیارم و فقط اطلاعات آن سطر را بخونم و ویرایش کنم !
اینم با یه دستور ساده ی update امکانپذیره :
private void button6_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=northwind;Persist Security Info=True;User ID=sa;Password=09126511085");
SqlCommand cmd = new SqlCommand("update customers set companyName='test2',contactName='test2' where customerID='anton'", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
- کسی یک آموزش ساده و ابتدایی برای ذخیره عکس در دیتابیس و فراخانی آن ندارد !!!
برای اینکه بتونی عکسی رو در دیتابیس ذخیره کنی، باید اونو به صورت آرایه ای از بایتها تبدیل کنی و در دیتابیس ذخیره کنی، فیلد جدولت هم یا باید image باشه یا varbinary(max)، اینم یه نمونه ذخیره ی عکس در دیتابیس که فیلد [image] اون از نوع image هست :
DataTable dt;
//Define this Function for convert Image To byte array
protected byte[] ReadBitmap2ByteArray(string fileName)
{
using(Bitmap image = new Bitmap(fileName))
{
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
return stream.ToArray();
}
}
//Define this function for Save Image To Database
protected void StoreBlob2DataBase(byte[] content)
{
SqlConnection con = sqlConnection1;
con.Open();
try
{
// insert new entry into table
SqlCommand insert = new SqlCommand(
"insert into Images ([stream]) values (@image)",con);
SqlParameter imageParameter =
insert.Parameters.Add("@image", SqlDbType.Binary);
imageParameter.Value = content;
imageParameter.Size = content.Length;
insert.ExecuteNonQuery();
}
finally
{
con.Close();
}
}
//Write this code in click event of your button to convert Image to stream and save it to database
private void button2_Click(object sender, System.EventArgs e)
{
byte[] content = ReadBitmap2ByteArray(openFileDialog1.FileName);
StoreBlob2DataBase(content);
pictureBox1.Image = null;
sqlDataAdapter1.Update(dataSet11);
}
برای بازگردانی عکس از دیتابیس هم باید برعکس عمل کنی، یعنی از آرایه ای از بایتها باید به تصویر ببری، اینم یه نمونه اش، این کد رو در رویداد CurrentCellChanged مربوط به دیتاگرید نوشتم که هر بار رکورد تغییر میکنه، عکس اون رکورد در یک pictureBox نمایش داده میشه :
//Write this Code For show Image when DatagidCurrentCell Changed or ...
private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
CurrencyManager cm =(CurrencyManager)BindingContext[dt];
DataRowView drv = (DataRowView) cm.Current;
byte[] content = (byte[])drv["stream"];
MemoryStream stream = new MemoryStream(content);
Bitmap image = new Bitmap(stream);
pictureBox1.Image = image;
}